JAVA 기초 : this

mark1106·2023년 7월 16일
0

JAVA

목록 보기
6/11

this란?

현재 객체를 참조하는 특수한 키워드로 다음과 같은 세 가지 역할을 수행한다.

1. 자기 자신의 인스턴스 멤버 지칭
2. 생성자에서 다른 생성자를 호출할 경우
3. 자기 자신의 메모리 주소 반환

장점 : 객체 지향 프로그래밍에서 코드의 가독성과 명확성을 높이는 데 도움을 준다


1. 자기 자신의 인스턴스 멤버 지칭

Person클래스의 필드 멤버와 Person 생성자의 매개변수 이름이 동일할 때 this를 통해 구분할 수 있다.

this.name은 자기 자신의 인스턴스 멤버를 지칭하므로 (this.name = name) 와 같이 this를 통해 구분해주면 자신의 인스턴스 name에 생성자 매개변수로 받은 name으로 초기화해줄 수 있다.

2. 생성자에서 다른 생성자를 호출할 경우

0(객체 생성)
위 그림과 같이 person이란 객체를 생성자를 통해 생성했을 때 매개변수를 하나 전달했으므로 1번 생성자를 호출하게 된다.

과정 1
이 때 1번 Person 생성자는 this키워드를 통해 2번 생성자를 호출해준다. 주의해야 할 점은 우리가 객체를 생성할 때 전달한 매개변수는 이름 하나이므로, gender의 default값으로 unknown을 같이 전달하여 준다.

과정 2
마찬가지로 2번 생성자에서 this키워드를 통해 3번 생성자를 호출하여 주는데 age값을 매개변수로 받지 않았으므로 임의의 default 값으로 -1을 넘겨준다.

과정 3
전달받은 매개변수로 객체를 생성한다.

3. 자기 자신의 메모리 주소 반환

return this 를 통해 자신의 주소를 반환한다.

0개의 댓글