반응형
🔖 INDEX
this 키워드란?
자바에서 this 키워드는 현재 객체 자신을 가리키는 참조 변수입니다. 객체 내부에서 자신의 멤버(변수, 메서드)를 명확하게 구분할 때 사용됩니다.
this 키워드의 주요 용도
- 멤버 변수와 지역 변수의 구분
- 다른 생성자를 호출 (생성자 체이닝)
- 현재 객체의 참조를 반환
멤버 변수와 지역 변수의 구분
자바에서는 생성자나 메서드 내부에서 지역 변수와 멤버 변수의 이름이 동일할 수 있습니다. 이 경우 this를 사용하여 멤버 변수를 명확하게 구분할 수 있습니다.
예제 코드 (this를 이용한 멤버 변수 참조)
class Person {
String name;
int age;
// 생성자
public Person(String name, int age) {
this.name = name; // this를 사용하여 멤버 변수와 지역 변수 구분
this.age = age;
}
void display() {
System.out.println("이름: " + this.name + ", 나이: " + this.age);
}
}
public class Main {
public static void main(String[] args) {
Person p = new Person("홍길동", 25);
p.display();
}
}
실행결과
이름: 홍길동, 나이: 25
위의 코드에서
this.name = name;
은 지역 변수 name과 멤버 변수 name을 구분하는 역할을 합니다.
생성자 체이닝 (Constructor Chaining)
생성자 체이닝이란, 하나의 생성자가 같은 클래스의 다른 생성자를 호출하는 기법입니다. 이때 this(…) 문법을 사용합니다.
생성자 체이닝의 장점
- 코드 중복 감소: 여러 생성자에서 공통 코드가 있다면, 하나의 생성자에서 처리하고 나머지는 해당 생성자를 호출하도록 하면 코드 중복이 줄어듭니다.
- 유지보수 용이: 공통 로직을 한 곳에서 관리할 수 있어 유지보수가 쉬워집니다.
예제 코드 (생성자 체이닝)
class Car {
String model;
int year;
String color;
// 기본 생성자
public Car() {
this("기본 모델", 2024, "검정색");
}
// 2개의 인자를 받는 생성자
public Car(String model, int year) {
this(model, year, "흰색");
}
// 3개의 인자를 받는 생성자 (가장 상세한 생성자)
public Car(String model, int year, String color) {
this.model = model;
this.year = year;
this.color = color;
}
void display() {
System.out.println("모델: " + model + ", 연식: " + year + ", 색상: " + color);
}
}
public class Main {
public static void main(String[] args) {
Car car1 = new Car();
Car car2 = new Car("소나타", 2022);
Car car3 = new Car("그랜저", 2023, "파란색");
car1.display();
car2.display();
car3.display();
}
}
실행결과
모델: 기본 모델, 연식: 2024, 색상: 검정색
모델: 소나타, 연식: 2022, 색상: 흰색
모델: 그랜저, 연식: 2023, 색상: 파란색
this(...) 를 사용하여 기본 생성자가 가장 상세한 생성자를 호출하도록 구성하였습니다.
this 키워드를 이용한 메서드 호출
객체 내부에서 자신의 메서드를 호출할 때도 this 키워드를 사용할 수 있습니다.
예제 코드 (this를 이용한 메서드 호출)
class Student {
String name;
Student(String name) {
this.name = name;
}
void study() {
System.out.println(name + " 학생이 공부를 합니다.");
}
void startStudying() {
System.out.println("공부 시작!");
this.study(); // 같은 클래스의 메서드 호출
}
}
public class Main {
public static void main(String[] args) {
Student s = new Student("김철수");
s.startStudying();
}
}
실행결과
공부 시작!
김철수 학생이 공부를 합니다.
위의 코드에서
this.study();
를 사용하여 startStudying() 내부에서 study() 메서드를 호출하였습니다.
정리
this 키워드의 주요 역할
- 멤버 변수와 지역 변수를 구분할 때 사용됩니다.
- 같은 클래스의 다른 생성자를 호출할 때 사용됩니다 (this(…)).
- 같은 클래스의 메서드를 호출할 때 사용됩니다 (this.method()).
- 현재 객체의 참조를 반환할 때 사용됩니다.
생성자 체이닝의 주요 장점
- 코드 중복을 줄이고, 유지보수를 용이하게 합니다.
- 기본 생성자가 더 구체적인 생성자를 호출하도록 하여 코드 흐름을 명확하게 합니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(61) - final 키워드의 활용과 주의점 (0) | 2025.03.26 |
---|---|
초보 자바 프로그래밍(60) - static 키워드의 활용과 주의점 (0) | 2025.03.26 |
초보 자바 프로그래밍(58) - Thread 동기화 (0) | 2023.10.04 |
초보 자바 프로그래밍(57) - Thread (0) | 2023.10.03 |
초보 자바 프로그래밍(56) - Exception Handling (try-catch-finally, throws) (0) | 2023.10.03 |
댓글