Engineering Note

[Java] this 키워드 본문

Programming Language/Java

[Java] this 키워드

Software Engineer Kim 2022. 8. 2. 10:52

this 키워드

  • Java에서 this는 현재 객체, 자기 자신을 나타낸다.

Car class

public class Car {
    String name;
    int number;

    public Car(String name){
        name = name;
    }

}

만약 위와 같이 Car Class를 생성하고 Main Class에서 Car 인스턴스를 만들어 Car의 name을 출력하게 되면 null 값이 출력된다. Car class의 생성자 메소드에서 name을 받아서 name에 값을 대입하는 코드는 사실 Car 필드, 인스턴스 변수 name에 값을 넣는 것이 아니라 매개 변수name 에 매개변수 name으 로 받은 값을 넣는 다는 의미다. 자바는 가장 가까운 블록의 변수를 가져와 사용하기 때문이다.
Main

public class Main {
    public static void main(String args[]){
        Car c = new Car("car!!");
        System.out.println(c.name);
    }
}

이러한 문제를 해결하기 위해 this 키워드가 사용된다. 아래와 같이 Car Class를 수정 하고 main에서 실행하면 정상적으로 원하는 값이 대입된 것을 확인할 수 있다.

public class Car {
    String name;
    int number;

    public Car(String name){
        this.name = name; // this 키워드 사용 자기자신 필드 name을 명시
    }

}

 

정리하면 

this.name에서 name은 필드 name을 의미하고 대입연산자(=) 뒤에 name은 매개 변수를 의미한다. 즉 매개변수의 값을 필드에 대입하라는 의미이다.

Comments