Q1)
자바에서 등장하는 생성자 라는 개념이란 무엇일까?
A1)
생성자 : 클래스로부터 객체를 만들어내는 메소드
부연)
자바에서 객체와 클래스의 관계는 땔래야 땔 수 없는 관계이다. 그렇기 때문에 항상 이 두 가지의 범주에서 생각을 항상 가지고 가야한다.
클래스는 객체를 만들기 위한 하나의 설계도이며
객체는 만들어진 하나의 물품이다.
Q2) 그렇다면 왜 생성자를 사용 할까?
A2)
객체 생성뿐만 아니라 초기화의 역할을 해주기 때문에 코드가 간결해지게 된다.
Ex)
일반적으로는 객체 생성 후 초기화의 과정을 거쳐야 한다.
Car c = new Car(); /* 해당 Car() 부분이 생성자 */
c.name = "abc";
c.speed = 100;
c.weight = 10;
↓(생성자 사용)
Car c1 = new Car("abc", 100, 10); /* 객체 생성과 동시에 초기화로 인해 한 줄로 깔끔해졌다. */
Q2) 생성자는 어떻게 사용할까?
A3) 크게 호출, 정의 2가지의 관점에서 살펴보자
호출 : 클래스_타입 변수명 = new 클래스_이름(인자 값);
정의 : 클래스_이름(파라미터 값) {
... 리턴타입X
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Main {
public static void main(String args[]) {
Car c = new Car("abc",100,10);
}
}
class Car {
String name;
int speed;
int weight;
Car(String n, int s, int w){
name = n;
speed = s;
weight = w;
}
}
|
cs |
+ 디폴트 생성자에 대한 이해)
: 생성자가 없을 경우 자동으로 기입(파라미터 및 중괄호 내부가 없는 형태다)
class Car {
String name;
int hp;
Hero(){
}
}
'* Web > [Back] Java' 카테고리의 다른 글
[Java] 자바 객체 단계별로 생성 하는 법? (0) | 2021.03.16 |
---|---|
[Java] String.format() 메소드 사용법 (0) | 2021.03.11 |
[IntelliJ] 인텔리제이 한글 깨짐? 인코딩 설정(UTF-8 설정, 한글 설정) (1) | 2021.03.04 |
[Java] JRE와 JDK란? 그리고 차이점은? (0) | 2020.11.03 |
[Java] 자바 : JVM이란? (0) | 2020.10.18 |
댓글