본문 바로가기
언어 공부하기/JAVA 개념

[Java 자바] this 키워드 사용하는 이유? this에 대해 알아보자 (자바 this)

by 망댕이 2024. 7. 29.
반응형

 

맨 처음에 자바를 공부하게 되었을 때 this 라는 키워드는 어렵게 느껴졌었다.

하지만 자바에서 중요한 역할을 하게 되어 자주 사용하게 되었으며, 주로 동일한 이름의 변수와 메소드를 구분하기 위해 생성자와 함께 사용하게 된다.

다시 한 번 예제 코드와 함께 알아보도록 하자.

▷ this

this는 " 이 클래스의 ..." 라는 의미를 가지고 있으며, 방금 말한대로 동일한 이름의 변수를 구분하게 해준다.

변수 이름은 중복해서 사용할 수 없지만 this를 이용하여 변수를 구분할 수 있다??

 

우선 말보다는 코드를 직접보고 확인해보자.

public class Car {
    String model;
    int year;

    // 생성자
    public Car(String model, int year) {
        this.model = model; // this.model은 인스턴스 변수, model은 매개변수
        this.year = year; // this.year은 인스턴스 변수, year은 매개변수
    }
}

 

위 처럼 같은 변수 이름인 model과 year이 있지만 서로 인스턴스 변수와 매개변수라는 차이점이 있다.

this라는 키워드를 사용함으로써 두 변수를 구분할 수 있다.

 

 

또한 현재 객체 자신을 참조하는데 사용된다.

public class Car {
    private String color;

    public Car setColor(String color) {
        this.color = color;
        return this; // this 키워드가 현재 객체를 참조한다.
    }

    public void printColor() {
        System.out.println("Car color: " + this.color);
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.setColor("Green").printColor(); 
    }
}

 

실행 결과

Car color: Green



마지막으로 this 키워드가 동일 클래스 내에서 다른 생성자를 호출하는데 사용할 수 있다.

public class Car {
    private String color;
    private String model;

    public Car(String color) { // 1개의 매개변수를 받는 생성자
        this(color, "Grandeur"); // 1개의 매개변수를 받아들이고 1개의 기본 값 추가
        // 여기 this는 2개의 매개변수를 받는 생성자를 호출
    }

    public Car(String color, String model) { // 2개의 매개변수를 받는 생성자
        this.color = color; 
        this.model = model;
        // 이 생성자는 3개의 매개변수를 받아들여 초기값을 설정.
        // 이런 방식으로 생성자를 사용하면 기본 값을 설정해놓고
        // 수정이 필요한 값만 매개변수로 넘겨 초기값을 설정할 수 있는 장점을 갖음.
    }

    public void printDetails() {
        System.out.println("Car color: " + this.color + ", model: " + this.model);
    }
}

public class Main {
    public static void main(String[] args) {
        Car car1 = new Car("Blue");
        car2.printDetails(); 

        Car car2 = new Car("Red", "Sedan");
        car3.printDetails(); 
    }
}
실행 결과

Car color: Blue, model: Grandeur
Car color: Red, model: Sedan

 

 

이렇게 this는 객체를 참조하는 강력한 키워드이다. this를 이용하여 인스턴스 변수와 매개 변수를 구분할 수 있다.

적절한 코드에서 this를 이용한다면 효율적이고 가독성이 높은 코드를 작성할 수 있다.

반응형