this

이규은·2021년 9월 30일
0

클래스

목록 보기
4/4

this 참조변수

this참조 변수는 인스턴스가 바로 자기 자신을 참조할때 사용하는 변수이다.
this참조 변수는 해당 인스턴스의 주소를 가리키고 있다.

static class Car {
    String name;
    int price;
    
    Car(String name, int price) {
        this.name = name;
        this.price = price;
    }    
}

위와 같이 매개변수 이름과 인스턴스 변수의 이름이 같을 경우에 인스턴스 변수 앞에 this를 붙여 구분해야 한다.

이렇게 자바는 this를 이용하여 인스턴스 변수에 접근할 수 있다. 이러한 this를 하용할 수 있는 영역은 인스턴스 메소드뿐이다. 클래스 메소드에서는 사용할수 없다.
모든 인스턴스 메소드에는 this가 숨겨진 지역 변수로 존재 하고 있다.

this()

this()는 생성자 내부에서만 사용할 수 있으며 같은 클래스의 다른 생성자를 호출할 때 사용한다.
this()에 인수를 전달하면 생성자 중에서 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출해 준다.

static class Car {
    String name;
    int price;

    Car(String name, int price) {
        this.name = name;
        this.price = price;
    }

    Car() {
        this("소나타", 20000000);
    }

    public String getCar() {
        return this.name + " " + this.price + "원";
    }

    public static void main(String[] args) {
        Car car = new Car();

        System.out.println(car.getCar());
    }
}

첫 번째 생성자는 this를 이용하여 인스턴스 변수에 접근하고 있다. 매개변수를 가지지 않는 두 번째 생성자는 내부에서 this()를 이용하여 첫 번째 생성자를 호출했다.
이렇게 내부적으로 다른 생성자를 호출하여 인스턴스 변수를 초기화할 수 있다.

profile
안녕하세요

0개의 댓글