[Java] 자신을 가리키는 키워드 : this, this()

정재현·2024년 1월 3일

Java

목록 보기
27/43
post-thumbnail

this와 this()

this

  • 인스턴스 자신을 표현하는 키워드
  • 객체 내부 생성자 및 메서드에서 객체 내부 멤버에 접근하기 위해 사용
  • 객체 내부 멤버에 접근할 때 this 키워드가 필수는 아니지만 상황에 따라 필수가 될 수 있다.
    ex. 생성자를 선언하는데 매개변수명과 객체의 필드명이 동일할 경우 오류가 발생하지는 않지만 생성자 블록 내부에서 해당 변수들은 객체의 필드가 아닌 가장 가까운 매개변수명을 가리키게 됨으로 자기 자신에게 값을 대입하는 상황이 생길 수 있다.

예시

	public Car(String model, String color, double price) {
    	this.model = model;
    	this.color = color;
    	this.price = price;
}

예시2

	Car returnInstance() {
    	return this;
}

자신의 주소를 반환하는 방법

  • this는 인스턴스 자신을 뜻하기 때문에 객체의 메서드에서 리턴 타입이 인스턴스 자신의 클래스 타입이라면 this를 상요하여 인스턴스 자신의 주소를 반환할 수도 있다.
	Car returnInstance() {
 	   return this;
	}

this()

  • 인스턴스 자신의 생성자를 호출하는 키워드
  • 객체 내부 생성자 및 메서드에서 해당 객체의 생성자를 호출하기 위해 사용
    • 생성자를 통해 객체의 필드를 초기화할 때 중복되는 코드를 줄여줄 수 있다.

예시

	public Car(String model) {
	    this(model, "Blue", 50000000);
	}
	
	public Car(String model, String color) {
	    this(model, color, 100000000);
	}
	
	public Car(String model, String color, double price) {
	    this.model = model;
	    this.color = color;
	    this.price = price;
	}

주의사항

  • this() 키워드를 사용해서 다른 생성자를 호출할 때는 반드시 해당 생성자의 첫 줄에 작성되어야함
    • this()키워드로 다른 생성자 호출 이전에 코드가 존재하면 오류가 생김
	public Car(String model) {
	    System.out.println("model = " + model);
	    this(model, "Blue", 50000000);
	}	

profile
공부 기록 보관소

0개의 댓글