다음 예제는 Car 클래스의 생성자를 나타낸 예제
class Car { private String modelName; private int modelYear; private String color; private int maxSpeed; private int currentSpeed; // Car(String modelName, int modelYear, String color, int maxSpeed) { this.modelName = modelName; this.modelYear = modelYear; this.color = color; this.maxSpeed = maxSpeed; this.currentSpeed = 0; } ... }
위의 예제처럼 생성자의 매개변수 이름과 인스턴스 변수의 이름이 같을 경우에는 인스턴스 변수 앞에 this 키워드를 붙여 구분해야한다.
이렇게 자바에서는 this 참조 변수를 사용하여 인스턴스 변수에 접근할 수 있다.
이러한 this 참조 변수를 사용할 수 있는 영역은 인스턴스 메소드뿐이며, 클래스 메소드에서는 사용할 수 없다.
모든 인스턴스 메소드에는 this 참조 변수가 숨겨진 지역 변수로 존재하고 있다.
class Car { private String modelName; private int modelYear; private String color; private int maxSpeed; private int currentSpeed; // Car(String modelName, int modelYear, String color, int maxSpeed) { this.modelName = modelName; this.modelYear = modelYear; this.color = color; this.maxSpeed = maxSpeed; this.currentSpeed = 0; } // Car() { this("소나타", 2012, "검정색", 160); // 다른 생성자를 호출함. } // public String getModel() { return this.modelYear + "년식 " + this.modelName + " " + this.color; } } // public class Method05 { public static void main(String[] args) { Car tcpCar = new Car(); System.out.println(tcpCar.getModel()); } }