기록
[JAVA] 생성자 본문
<생성자란?>
인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'
- 인스턴스 변수를 초기화하는 메서드이다.
- 모든 클래스에는 반드시 하나 이상의 생성자가 필요하다.
Card c = new Card();
1. 연산자 new에 의해서 메모리(heap)에 Card 클래스의 인스턴스가 생성된다.
2. 생성자 Card()가 호출되어 수행된다.
3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변수 c에 저장된다.
<생성자 조건>
- 생성자의 이름은 클래스의 이름과 동일하다.
- 생성자는 리턴타입이 '없다.' (void가 아님)
<생성자 - 기본생성자>
- 기본생성자 (Default Constructor)
: 매개변수가 없는 생성자
클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.
생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.
<생성자 - this() 를 이용한 호출>
- this(): 같은 클래스의 다른 생성자를 호출할 때 사용한다
- 다른 생성자 호출은 생성자의 첫 문장에서만 가능하다.
class Car {
String color;
String gearType;
int door;
Car() {
this("white", "auto", 4);
}
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
}
- 생성자를 이용한 인스턴스의 복사
- 생성자에서 참조변수를 매개변수로 받아서 인스턴스 변수들의 값을 복사한다
- 똑같은 속성값을 갖는 독립적인 인스턴스가 하나 더 생성된다
class Car {
String color;
String gearType;
int door;
Car() {
this("white", "auto", 4);
}
Car(String c, String g, int d) {
color = c;
gearType = g;
door = d;
}
Car(Car c) {
color = c.color;
gearType = c.gearType;
door = c.doorl
}
}
class CarTest3 {
public static void main(String[] args) {
Car c1 = new Car();
Car c2 = new Car(c1); //c1과 동일한 인스턴스 생성
}
}
'공부 > JAVA' 카테고리의 다른 글
[JAVA] 메서드 (0) | 2020.07.06 |
---|---|
[JAVA] 변수 (0) | 2020.07.05 |
[JAVA] 클래스와 객체 (0) | 2020.07.04 |
[JAVA] 조건문과 반복문 (0) | 2020.07.04 |
[JAVA] 자바 개요 (0) | 2020.07.04 |
Comments