생성자
- 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드
- iv(Instance Variable) 초기화 메소드
Time t = new Time();
t.hour = 12;
t.minute = 34;
t.second = 56;
Time t = new Time(12, 34, 56);
- 이름이 클래스와 이름이 같아야 한다.
- 리턴값이 없다. (void 안붙임)
- 모든 클래스는 반드시 생성자를 가져야 한다.
클래스이름(타입 변수명, 타입 변수명, ...) {
}
class Card {
...
Card() {
}
Card(String kind, int number) {
}
}
기본 생성자(default constructor)
- 매개변수가 없는 생성자
- 생성자가 하나도 없을 때만, 컴파일러가 자동추가
클래스이름() { }
Point() { }
class Data_1 {
int value;
}
class Data_2 {
int value;
Data_2(int x) {
value = x;
}
}
class Ex{
public static void main(String[] args) {
Data_1 d1 = new Data_1();
Data_2 d2 = new Data_2();
}
}
compile error
class Data_1 {
int value;
Data_1() { }
}
class Data_2 {
int value;
Data_2() { }
Data_2(int x) {
value = x;
}
}
매개변수가 있는 생성자
class Car {
String color;
String gearType;
int door;
Car() { }
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
}
Car c = new Car();
c.color = "White";
c.gearType = "auto";
c.door = 4;
생성자로 출력 시
Car c = new Car("White", "auto", 4); 생성자 출력 시 코드가 줄어든다.
References