자바의 "this"의 의미와 사용법
자바에서 "this"는 현재 인스턴스를 참조하는 키워드입니다. "this"를 사용하여 현재 객체의 멤버 변수 및 메서드에 접근할 수 있습니다. 이 글에서는 "this"의 의미와 사용법에 대해 다루도록 하겠습니다.
1. "this"의 의미
"this"는 객체 내에서 자신을 가리키는 참조 변수입니다. 클래스의 인스턴스가 생성될 때마다, 그 인스턴스의 메모리 공간에는 멤버 변수들이 저장됩니다. "this"는 현재 인스턴스를 가리키므로, 해당 인스턴스의 멤버 변수에 접근할 수 있습니다. "this"를 사용하여 인스턴스 변수와 메서드를 구분할 수 있으며, 인스턴스 변수와 지역 변수의 이름이 충돌할 때 사용하여 혼란을 방지할 수 있습니다.
2. "this"의 사용법
아래는 몇 가지 "this"의 사용 예시입니다.
2.1. 현재 인스턴스의 멤버 변수 접근
public class MyClass {
private int number;
public void setNumber(int number) {
this.number = number; // "this"를 사용하여 현재 인스턴스의 멤버 변수에 접근
}
}
위의 코드에서 "this.number"는 현재 인스턴스의 "number" 멤버 변수에 접근하는 것을 나타냅니다. "this"를 사용함으로써 현재 인스턴스에 저장되는 값을 알 수 있습니다.
2.2. 현재 인스턴스의 메서드 호출
public class MyClass {
public void doSomething() {
System.out.println("Doing something...");
}
public void invokeMethod() {
this.doSomething(); // "this"를 사용하여 현재 인스턴스의 메서드 호출
}
}
위의 코드에서 "this.doSomething()"은 현재 인스턴스의 "doSomething()" 메서드를 호출하는 것을 나타냅니다. "this"를 사용함으로써 현재 인스턴스의 메서드를 호출할 수 있습니다.
3. "this"의 주의사항
3.1. 정적 메서드에서의 "this" 사용
정적(static) 메서드 내에서는 "this"를 사용할 수 없습니다. 정적 메서드는 인스턴스에 속하지 않으므로, "this"를 사용하여 현재 인스턴스를 참조할 수 없습니다.
3.2. 생성자에서의 "this" 사용
생성자 내에서도 "this"를 사용할 수 있습니다. "this"를 사용하여 다른 생성자를 호출할 수 있습니다. 이는 생성자 간의 코드 중복을 줄이고, 특정한 조건에 따라 다른 생성자를 호출할 수 있도록 도와줍니다.
public class MyClass {
private int number;
public MyClass() {
this(0); // "this"를 사용하여 다른 생성자 호출
}
public MyClass(int number) {
this.number = number;
}
}
위의 코드에서 "this(0)"은 인자로 0을 받는 다른 생성자를 호출하는 것을 나타냅니다. 이를 통해 기본 생성자에서 특정 값으로 초기화된 객체를 생성할 수 있습니다.
4. 마무리
이 글에서는 자바의 "this" 키워드의 의미와 사용법에 대해 알아보았습니다. "this"를 사용하여 현재 인스턴스의 멤버 변수와 메서드에 접근할 수 있으며, 생성자에서 다른 생성자를 호출하는 것도 가능합니다. "this"의 사용은 코드의 가독성을 높이고, 혼돈을 방지하는 데 도움을 줍니다.
댓글