본문 바로가기
JAVA/객체지향 프로그래밍 (OOP) 기초

this 키워드

by DEVLIB 2025. 4. 12.
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