mojo's Blog

this reference 본문

Java

this reference

_mojo_ 2021. 7. 17. 22:51

this는 자바의 중요한 키워드로서 단어 뜻 그대로 객체 자신을 가리키는 레퍼런스이다.

 

this는 현재 객체 자신에 대한 레퍼런스이다. 보다 정확히 말하면 현재 실행되고 있는 메소드가 속한 객체에 대한 레퍼런스이다.

 

this는 컴파일러에 의해 자동 관리되므로 개발자는 this를 사용하기만 하면 된다. 

 

this의 필요성 

 

public Circle(int radius) { radius = radius; } => 여기서 2개의 radius는 모두 parameter radius를 접근한다.

 

parameter radius가 아닌 멤버 radius로 접근하기 위해서 다음과 같이 this를 이용한다.

 

public Circle(int radius) { this.radius = radius; }

 


this() 는 클래스 내에서 생성자가 다른 생성자를 호출할 때 사용되는 자바 코드이다.

 

this() 사용할때 주의해야할 점이 있다.

  • this()는 반드시 생성자 코드에서만 호출 가능하다.
  • this()는 반드시 같은 클래스 내 다른 생성자를 호출할 때 사용된다.
  • this()는 반드시 생성자의 첫 번째 문장이여야 한다.

다음과 같은 사례를 통해 this() 에 대해 알아보자.

 

import java.util.*;

class Book{
	String title,author;
	void show() { System.out.println(title+" "+author);}
	
	Book() {
		this("","");
		System.out.println("생성자 호출됨");
	}
	
	Book (String title){
		this(title,"작자미상");
	}
	
	Book(String title, String author){
		this.title=title;
		this.author=author;
	}
}

public class Main {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		
		Book b1=new Book();
		Book b2=new Book("춘향전");
		Book b3=new Book("어린왕자","생텍쥐페리");
		
		b1.show();
		b2.show();
		b3.show();
		
		scanner.close();
	}

}

Comments