객체 자신을 가리키는 this

일상 코딩·2022년 8월 1일

01.this가 하는 일

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

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

  • 클래스 내에서 참조변수가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드 this
public void setYear(int year)
{
    this.year = year;
}

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

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

Person.java

package ch12;

public class Person {

	String name;
	int age;
	
	public Person() {
		this("no name", 1); // Person(String name, int age)
	}
	
	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();		
	}
}

출력 결과


04.자신의 주소를 반환하는 this

Person.java

package ch12;

public class Person {

	String name;
	int age;
	
	public Person() {
		this("no name", 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 person = new Person();
		
		System.out.println(person);
		System.out.println(person.getPerson());
	}
}

출력 결과

  • person 참조변수의 메모리 주소 값과 returnthis의 메모리 주소값이 같은 것을 볼 수 있다.
profile
일취월장(日就月將) - 「날마다 달마다 성장하고 발전한다.」

0개의 댓글