JAVA/개념
자바(JAVA) : this, this()
tigre
2022. 1. 2. 16:41
728x90
반응형
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;
}
...
}
위의 코드처럼 생성자의 매개변수 이름과 객체 이름이 같을 경우 객체 앞에 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());
}
}
출력 결과 : 2012년식 소나타 검정색
요약
this 예약어에 알아봤습니다. this는 클래스 내부에서만 사용됩니다.
왜 내부에서만 사용되는지 이유를 한번 생각해 보면 좋을 것 같습니다.
다른 언어인 파이썬에서도 self 라는 키워드를 this 와 비슷하게 사용하는데요. 객체 지향 프로그래밍 언어는 클래스라는 캡슐화를 통해 외부와 내부를 분리하기 때문에 필연적으로 인스턴스를 내부에서 사용하는 로직이 필요합니다.
그러니까 바깥에서 보면 인스턴스의 이름 (예: myInstance) 로 보이겠지만. 인스턴스 안에서 보면 우리입니다. 우리이고 이것입니다. (this) 파이썬에서도 왜 (self – 자신) 이라고 하는지 의도가 보입니다.
이렇듯 객체지향은 넓게 봐도 의미가 연결되어 있습니다.
this도 초보자에게는 어려운 개념중 하나이기 때문에 확실히 이해하도록 합니다.
728x90
반응형