Java

[Java] this

인생은단짠단짠 2022. 9. 21. 16:39

 

 

지금까지 this를 사용해왔습니다.

그런데 this는 참조값을 반환하는 것 외에도 다양한 곳에 사용됩니다.

 

 

  • 인스턴스 자신의 메모리를 가리킴
  • 생성자에서 또 다른 생성자를 호출 할때 사용
  • 자신의 주소(참조값)을 반환 함

 

생성된 인스턴스 메모리의 주소를 가짐

 

클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드 입니다.

 

public void setYear(int year)
{
    this.year = year;
}

 

생성자에서 다른 생성자를 호출

 

  • 클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음
  • 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement를 쓸 수 없음
public class Person {

	String name;
	int age;
	
	public Person() {
		this("이름없음", 1);
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
}

 

 

자신의 주소 반환 

public class Person {

	String name;
	int age;
	
	public Person() {
		this("이름없음", 1);
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public Person getPerson() {
		return this;
	}
	
	
	public static void main(String[] args)
	{
		Person p = new Person();
		p.name = "James";
		p.age = 37;
		
		Person p2 = p.getPerson();
		System.out.println(p);
		System.out.println(p2);
	}
}

'Java' 카테고리의 다른 글

[Java] 상속  (1) 2022.09.23
[Java] Random값 생성  (0) 2022.09.22
[Java] 접근 제어 지시자 / 정보 은닉  (0) 2022.09.21
[Java] 참조 자료형 변수  (0) 2022.09.21
[Java] 객체 구현  (0) 2022.09.21