초기화 방식 | 설명 | 예시 | 특징 |
---|---|---|---|
1-①. 외부 직접 대입 | 객체 생성 후 외부에서 멤버변수에 직접 값 대입 | d.color = "노란색"; | 간단하고 직관적, 자주 사용 |
1-②. 내부 직접 대입 | 변수 선언과 동시에 초기값 지정 | public String color = "노란색"; | |
2. 생성자 내부 초기화 | 생성자 안에서 직접 값 대입 | color = "노란색"; | 객체 생성 시 자동으로 값 부여 |
3. 매개변수 생성자 초기화 | 생성자 매개변수로 받아 초기화 | this.color = color; | 다양한 객체 생성 가능, 유연성 ↑ |
1️⃣-① 외부 직접 대입
public class Duck {
public String color;
}
public class UseDuck {
public static void main(String[]args){
Duck d = new Duck();
d.color = "노란색";
}
}
1️⃣-② 내부 직접 대입
public class Duck {
public String color = "노란색"; // 선언과 동시에 초기화
}
2️⃣ 생성자 내부 초기화
public class Duck {
public String color;
//생성자 내부에서 멤버변수 초기화
public Duck() {
color = "노란색"; // this 없이도 가능 (멤버변수에 접근)
//또는
this.color = "노란색"; // 같은 의미지만, 명확하게 "멤버변수"라는 걸 표현 (선택)
}
}
3️⃣ 매개변수 생성자
//매개변수 생성자 내부에서 초기화
public Duck(String color) {
this.color = color;
}
}
//사용
Duck d = new Duck("하얀색");
System.out.println(d.color); // 하얀색
💬 this.color = color; 이게 뭐야?
멤버변수 color와 매개변수 color의 이름이 같을 때,
앞에 this.
를 붙이면 "멤버변수"를 가리킨다는 뜻