본문 바로가기
Java

[JAVA] 자바 - 객체 자신을 가리키는 this

by Seong-Jun 2021. 11. 23.
728x90
반응형
SMALL
  • 인스턴스 자신의 메모리를 가리킵니다.
  • 생성자에서 또 다른 생성자를 호출할 때 사용합니다.
  • 자신의 주소(창조 값)를 반환합니다.

 

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

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

 

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

 

생성자에서 다른 생성자를 호출하는 this

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

 

Person.java

public class Person {
	String name;
	int age;
	
	public Person() {
		// code 작성 x
		this("이름없음", 1);
		// code 작성 o
	}
	
	public Person(String name ,int age) {
		this.name = name;
		this.age = age;
	}
	
	public void showPerson() {
		System.out.println(name + ", " + age);
	}
	
	public static void main(String[] args) {
		Person person = new Person();
		
		person.showPerson();
		
	}
}

 

출력 결과

이름없음, 1

 

자신의 주소를 반환하는 this

public class Person {
	String name;
	int age;
	
	public Person() {
		// code 작성 x
		this("이름없음", 1);
		// code 작성 o
	}
	
	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 = "Jun";
		p.age = 22;
		
		Person p2 = p.getPerson();
		System.out.println(p);
		System.out.println(p2);
		
	}
}

 

출력 결과

ch13.Person@123a439b
ch13.Person@123a439b
 

 

728x90
반응형
LIST

댓글