[자바 프로그래밍] 자바 this를 파헤쳐보자
- Language & Solution/Java
- 2019. 6. 10. 23:32
반응형
자바에서 제공하는 this 키워드는 인스턴스 자기 자신를 가리키는 키워드입니다. 이 this 키워드를 통해 클래스 메서드 및 생성자에서 자기 자신의 데이터를 업데이트하거나 조작할 수 있습니다.
여기서 중요한 것은 this 키워드는 이 클래스를 기반으로 생성된 인스턴스를 가리키는 참조라는 사실입니다. 인스턴스를 가르키는 참조와 인스턴스 자체는 다르다는 것을 알아두셨으면 좋겠습니다.
public class ThisExample {
private String name;
private Integer age;
private String address;
public ThisExample() {
this.name = "KBS";
this.age = 19;
this.address = "Seoul";
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public String getAddress() {
return address;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
public ThisExample returnThisExample() {
return this;
}
}
위의 예제는 this 키워드를 이용하여 작성한 전형적인 클래스 코드입니다. this란 키워드를 통해 생성자 및 세터 메서드에서 이 클래스를 기반으로 생성된 인스턴스의 필드 데이터에 접근할 수 있습니다.
this 키워드는 인스턴스 자기 자신을 가르키는 참조이기 때문에 인스턴스를 참조하는 변수와 비교했을 때 같다라는 결과가 나올 것입니다. 이것을 위의 returnThisExample 메서드를 이용하여 확인해보겠습니다.
public class Main {
public static void main(String[] args) {
ThisExample thisExample = new ThisExample();
System.out.println(thisExample);
System.out.println(thisExample.returnThisExample());
if(thisExample == thisExample.returnThisExample()){
System.out.println("Same!!");
}
else {
System.out.println("Not Same!!");
}
}
}
위에서 thisExample 변수는 ThisExample 클래스를 기반으로 생성된 인스턴스를 가르키는 변수입니다. 여기서 thisExample.returnThisExample 메서드를 호출하여 그 결과를 출력하면 같은 인스턴스를 가리키는 것을 알 수 있습니다.
thisExample과 this 키워드를 반환하는 returnThisExample의 값이 같기 때문에 Same!!이라는 결과가 아래에 출력됩니다.
ThisExample@1540e19d
ThisExample@1540e19d
Same!!
반응형
'Language & Solution > Java ' 카테고리의 다른 글
VisualVM을 이용한 log4j2 로그 수준 변경 및 모니터링 (0) | 2019.05.30 |
---|---|
[Java Library] slf4j + log4j2 한 방 정리 (0) | 2019.05.27 |
[Java] 새로운 게 무조건 더 좋은 방법은 아니다: Collections.nCopies()와 Stream에 관하여 (0) | 2019.03.08 |
[Java] Java Optional (자바 옵셔널) 정리, 예제모음 (0) | 2018.11.21 |
[Java] Java 클래스 로딩 과정(Java Class Loading Process) (0) | 2018.11.12 |
이 글을 공유하기