자바 this의 의미와 사용법
1. this란?
- 자바에서 this는 현재 객체를 가리키는 키워드다.
- 객체 내부에서 객체 자신을 참조하거나 객체의 멤버에 접근하기 위해 사용된다.
2. 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 myObject = new MyClass();
myObject.setNumber(10); // 현재 객체의 setNumber 메서드 호출
int number = myObject.getNumber(); // 현재 객체의 getNumber 메서드 호출
2.2 생성자 호출
- 생성자를 호출할 때 this를 사용하여 다른 생성자를 호출할 수 있다.
- 이를 이용하여 중복되는 코드를 줄일 수 있다.
public class MyClass {
private String name;
private int age;
public MyClass(String name) {
this(name, 0); // 다른 생성자 호출
}
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
}
MyClass myObject1 = new MyClass("Alice"); // MyClass(String name) 생성자 호출
MyClass myObject2 = new MyClass("Bob", 20); // MyClass(String name, int age) 생성자 호출
3. this 주의사항
- 메서드 내에서만 사용할 수 있다.
- 정적(static) 메서드에서 this를 사용할 수 없다.
- 매개변수와 멤버 변수의 이름이 같을 때 this를 사용하여 구분할 수 있다.
public class MyClass {
private String name;
public MyClass(String name) {
this.name = name;
}
public void printName(String name) {
System.out.println(name); // 매개변수 name 출력
System.out.println(this.name); // 멤버 변수 name 출력
}
}
MyClass myObject = new MyClass("Alice");
myObject.printName("Bob");
마무리
- this는 현재 객체를 가리키는 키워드로, 객체 내부에서 사용된다.
- this를 사용하여 현재 객체의 멤버 변수에 접근하거나 메서드를 호출할 수 있다.
- 생성자에서 다른 생성자를 호출할 때도 this를 사용할 수 있다.
- 주의해야 할 점으로는 this는 메서드 내에서만 사용 가능하고, 정적 메서드에서는 사용할 수 없다. 또한 매개변수와 멤버 변수의 이름이 같을 때 this를 사용하여 구분할 수 있다.
댓글