1. this 키워드의 의미
자바에서의 this
키워드는 현재 인스턴스를 가리키는 참조 변수입니다. this
를 사용하여 해당 클래스 내의 변수, 메서드, 생성자에 접근할 수 있습니다. this
는 인스턴스의 생성 시점부터 소멸 시점까지 유효한 참조로, 클래스 내부에서 현재 인스턴스에 접근할 때 사용됩니다.
this
는 인스턴스의 주소를 가리키기 때문에, 인스턴스의 멤버들에 접근할 수 있는 것입니다. 이는 클래스 내에 동일한 이름의 인스턴스 변수와 매개변수가 있을 때, 변수를 구분하기 위해서도 사용됩니다. 또한 this
를 사용하여 자기 자신의 메서드를 호출할 수도 있습니다.
아래는 this
키워드의 사용법과 관련된 내용을 소개합니다.
2. this 키워드의 사용법
this
키워드의 사용법은 다음과 같습니다:
2.1. 변수와 메서드에 접근하기
this.변수명
: 현재 인스턴스의 변수에 접근합니다.this.메서드명()
: 현재 인스턴스의 메서드를 호출합니다.
public class MyClass {
private int number;
public void setNumber(int number) {
this.number = number;
}
public int getNumber() {
return this.number;
}
}
// 사용 예시
MyClass myInstance = new MyClass();
myInstance.setNumber(10);
System.out.println(myInstance.getNumber()); // 출력: 10
2.2. 생성자 호출하기
this()
또는this(매개변수)
형식으로 사용하여 다른 생성자를 호출할 수 있습니다. 이는 같은 클래스 내에서 다른 생성자를 호출할 때 사용됩니다. 단, 생성자 호출은 첫 번째 문장으로 작성되어야 합니다.
public class MyClass {
private int number;
private String name;
public MyClass() {
this(0, "unknown"); // 다른 생성자 호출
}
public MyClass(int number, String name) {
this.number = number;
this.name = name;
}
}
2.3. 메서드 체이닝 (Method Chaining)
this
를 반환하도록 메서드를 구성하여 메서드 체이닝이 가능하게 할 수 있습니다. 이는 같은 인스턴스에서 여러 메서드를 연이어 호출할 때 유용합니다.
public class MyClass {
private int number;
public MyClass setNumber(int number) {
this.number = number;
return this;
}
public int getNumber() {
return this.number;
}
}
// 사용 예시
MyClass myInstance = new MyClass();
int number = myInstance.setNumber(10).getNumber();
System.out.println(number); // 출력: 10
this
키워드는 현재 인스턴스에 대한 참조로, 클래스 내에서 인스턴스 멤버들에 접근하고 호출하기 위해 사용됩니다. 이를 활용하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
3. this 키워드의 활용 예시
this
키워드는 다양한 상황에서 활용될 수 있습니다. 아래는 this
키워드의 일반적인 활용 예시입니다:
3.1. 변수 구분하기
클래스 내에 동일한 이름의 인스턴스 변수와 매개변수가 있을 때, this
키워드를 사용하여 변수를 구분할 수 있습니다.
public class MyClass {
private int number;
public void setNumber(int number) {
this.number = number; // 인스턴스 변수에 접근
}
}
3.2. 생성자 호출하기
하나의 생성자가 다른 생성자를 호출해야 하는 경우, this
키워드를 사용하여 다른 생성자를 호출할 수 있습니다.
public class MyClass {
private int number;
private String name;
public MyClass() {
this(0, "unknown"); // 다른 생성자 호출
}
public MyClass(int number, String name) {
this.number = number;
this.name = name;
}
}
3.3. 메서드 체이닝 (Method Chaining)
this
를 반환하도록 메서드를 구성하여 메서드 체이닝이 가능하게 할 수 있습니다. 이는 같은 인스턴스에서 여러 메서드를 연이어 호출할 때 유용합니다.
public class Calculator {
private int number;
public Calculator add(int value) {
this.number += value;
return this;
}
public Calculator subtract(int value) {
this.number -= value;
return this;
}
public int getResult() {
return this.number;
}
}
// 사용 예시
Calculator calculator = new Calculator();
int result = calculator.add(5).subtract(3).getResult();
System.out.println(result); // 출력: 2
이와 같이 this
키워드를 적절하게 활용하면 코드를 간결하고 이해하기 쉽게 만들 수 있습니다.