728x90
반응형
자바의 this 키워드
`this`는 객체 지향 프로그래밍에서 객체 내부에서 현재 객체를 가리키는 참조 변수로 사용됩니다.
`this` 키워드는 매우 유용하며, 코드의 가독성을 높이고 객체의 멤버 변수와 메서드에 접근하는 데 도움이 됩니다.
1. `this` 키워드의 역할과 의미
`this` 키워드는 현재 객체 자신을 가리키는 레퍼런스로, 객체가 생성되면 메모리에는 해당 객체의 정보가 저장됩니다.
이때 `this`는 객체의 메모리 주소를 가리키는 레퍼런스이며, 객체의 멤버 변수와 메서드에 접근하는 데 사용됩니다.
2. `this`의 주요 사용 방법
2 - 1. 멤버 변수와 매개변수 이름 충돌 해결
클래스 내에서 멤버 변수와 메서드의 매개변수 이름이 같을 경우,
`this`를 사용하여 해당 변수가 멤버 변수임을 명시적으로 표시할 수 있습니다.
class MyClass {
int x;
void setX(int x) {
this.x = x; // 멤버 변수 x에 파라미터 x의 값을 대입
}
}
2 - 2. 생성자에서 다른 생성자 호출
생성자 내에서 다른 생성자를 호출할 때 `this`를 사용하여 코드의 중복을 피할 수 있습니다.
class MyClass {
int x;
String name;
MyClass(int x, String name) {
this.x = x;
this.name = name;
}
MyClass(int x) {
this(x, "Default"); // 다른 생성자 호출
}
}
2 - 3. 메서드에서 현재 객체 반환
메서드가 현재 객체를 반환할 때, `this`를 사용하여 객체 자신을 반환할 수 있습니다.
class MyClass {
int x;
MyClass(int x) {
this.x = x;
}
MyClass increment() {
this.x++;
return this; // 현재 객체를 반환
}
}
3. `this`의 제약 사항
3 - 1. 정적 메서드의 사용 불가
`this`는 인스턴스 메서드 내에서만 사용 가능하며, 정적(static) 메서드에서는 사용할 수 없습니다.
정적 메서드는 클래스에 속하며, 특정 객체와 연결되지 않기 때문에 객체의 참조인 `this`를 사용할 수 없습니다.
`this` 키워드는 자바에서 객체 지향 프로그래밍을 구현하는 데 중요한 도구입니다.
클래스 내에서 멤버 변수와 매개변수 이름 충돌을 방지하고, 생성자 간의 호출을 간편하게 하며,
메서드에서 현재 객체를 반환하는 데에 사용됩니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java - 31. 자바의 다형성(Polymorphism)과 타입 변환(casting) 연산자 (0) | 2023.08.02 |
---|---|
Java - 30. 자바의 super 키워드 (0) | 2023.08.01 |
Java - 28. 자바 상속(Inheritance) (0) | 2023.07.30 |
Java - 27. 자바 싱글톤 패턴(Singleton Pattern) (0) | 2023.07.29 |
Java - 26. 자바의 인스턴스 멤버(Instance Member)와 스태틱 멤버(Static Member) (0) | 2023.07.28 |