Programming/Java, Spring

[JAVA] this()와 this 의 차이점!

Juun 2022. 5. 14. 18:32
반응형

this()와 this 의 차이점!

우리는 자바를 공부하다보면 this()와 this를 볼 수 있는데 처음에는 '이게 같은건가?'라는 생각을 할 수 있지만

엄연히 둘은 전혀 관계가 없는 생성자와 참조변수이다!

 

this( ) 생성자

  • 생성자의 이름, 클래스 이름 대신 this를 사용한다
  • 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출 가능
Car(String color) {
	door = 5;	// 에러1
    Car(color, "auto", 4);	// 에러2
}

에러1. 생성자의 두 번째 줄에서 다른 생성자를 호출함

에러2. this(color, "auto", 4); 로 클래스 이름 대신 this를 사용해야함

 

this 참조변수

  • 인스턴스 자신을 가리키는 참조 변수
  • 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
  • 인스턴스 메서드에서만 사용가능
Car(String color, String gearType, int door) {
	this.color = color;
    this.gearType = gearType;
    this.door = door;
}

앞에 this가 붙은 매개변수는 인스턴스 변수(iv)이고 뒤에 this가 안붙은 매개변수는 지역변수(lv)이다

lv와 iv를 구분하려 this를 붙힘!

 

※ this와 this()는 비슷하게 생겼을 뿐 완전히 다르다. this는 '참조변수' 이고 this()는 '생성자'이다

반응형