생성자에서 다른 생성자 호출 - this()
-생성자의 이름으로 클래스이름 대신 this()를 사용
-한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 가능
객체 자신을 가리키는 참조변수 - this
인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있음
class Pen{
String color;
String type;
Pen(){
this("pink", "노크식");
// 아래의 Pen(String color, String type) 생성자를 호출
}
Pen(String color, String type){
this.color = color;
//this.color는 인스턴스 변수를 의미, color는 매개변수로 받아온 컬러를 의미
this.type = type;
}
}
변수의 초기화
멤버변수(인스턴스, 클래스 변수)는 초기화를 하지 않아도 자동으로 기본값으로 초기화됨
하지만 지역변수는 반드시 초기화를 해주어야 함
멤버변수의 초기화
클래스 변수 초기화 > 인스턴스 변수 초기화 순서
자동 초기화 > 명시적 초기화 > 초기화 블럭, 생성자 순서로
class Ex{
static {
System.out.println("static {}");
//(static) 클래스 초기화 블럭
}
{
System.out.println("{}");
//인스턴스 초기화 블럭
}
public Ex(){
System.out.println("생성자");
//생성자
}
public static void main(String[] args){ //메인메서드
System.out.println("Ex e = new Ex(); ");
Ex e = new Ex();
}
}
결과
static {}
Ex e = new Ex();
//클래스 초기화가 먼저 (최초 1번) > 메인메서드 >
{}
//인스턴스 초기화 (인스턴스 생성) > 생성자 (해당 인스턴스 생성)
생성자
-자바의 정석 기초편 책으로 공부하였습니다
반응형
'IT 기초 > JAVA' 카테고리의 다른 글
[java 정리] 객체지향 프로그래밍II (1) (0) | 2022.07.26 |
---|---|
[java 정리] 객체지향 프로그래밍I (2) (0) | 2022.07.02 |
[java 정리] 객체지향 프로그래밍I (1) (0) | 2022.07.02 |
[java 정리] 변수, 상수, 리터럴, Scanner (0) | 2022.06.28 |
[java 정리] 출력문 (0) | 2022.06.28 |
댓글