728x90
this 키워드란?
현재 객체 자기 자신을 가리키는 참조 변수
즉, “이 객체 자신”을 말해요.
사용 목적
| 상황 |
이유 |
| 생성자 또는 메서드 안에서 필드와 매개변수 이름이 같을 때 | 구분하기 위해 this 사용 |
| 자기 자신의 메서드/생성자 호출 | 객체 내부에서 this.methodName() |
| 현재 객체를 다른 객체에 전달 | someMethod(this) 형태로 사용 가능 |
예제: 변수 이름이 겹칠 때 this 사용
public class Student {
String name;
// 생성자
public Student(String name) {
this.name = name; // 왼쪽은 필드, 오른쪽은 매개변수
}
void printName() {
System.out.println("학생 이름: " + this.name);
}
}
사용
public class Main {
public static void main(String[] args) {
Student s1 = new Student("영희");
s1.printName(); // 출력: 학생 이름: 영희
}
}
this로 메서드 호출
void start() {
System.out.println("시작합니다!");
this.print(); // 같은 클래스 안의 메서드 호출
}
void print() {
System.out.println("출력 완료!");
}
this로 생성자 호출 (this(...))
public class Book {
String title;
int price;
// 생성자 1
public Book(String title) {
this(title, 10000); // 생성자 2 호출
}
// 생성자 2
public Book(String title, int price) {
this.title = title;
this.price = price;
}
}
this(...)는 반드시 생성자 첫 줄에만 써야 합니다.
this 키워드 정리 요약
| 사용 위치 | 예시 | 의미 |
| 필드와 매개변수 이름이 같을 때 | this.name = name; | 객체 자신을 가리킴 |
| 메서드 호출 시 | this.print(); | 자기 자신의 메서드 호출 |
| 생성자 안에서 다른 생성자 호출 | this(...); | 생성자 오버로딩 활용 |
| 객체 전달 시 | someMethod(this); | 자기 자신을 인자로 넘김 |
실습 아이디어
- Car 클래스 → 생성자에서 this로 필드 초기화
- Person 클래스 → 자기 자신을 this로 다른 메서드에 전달
- Product 클래스 → this()로 생성자 오버로딩 구성
LIST
'JAVA > 객체지향 프로그래밍 (OOP) 기초' 카테고리의 다른 글
| extends 키워드로 상속하기 (0) | 2025.04.13 |
|---|---|
| 인스턴스 메서드 vs 클래스(static) 메서드 (0) | 2025.04.13 |
| 생성자의 개념 및 오버로딩 (0) | 2025.04.12 |
| 객체 생성과 메서드 호출 (0) | 2025.04.12 |
| 클래스란? (0) | 2025.04.12 |