this 참조 변수 :
인스턴스가 바로 자기 자신을 참조하는 데 사용하는 하는 변수.
this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다.
현재 객체의 참조값을 갖는 참조변수 주로 멤버변수와 지역 변수 이름이 같을 때, 멤버변수를 구분하기 위해서 사용한다.
this 참조 변수를 사용할 수 있는 영역은 인스턴스 메서드만 가능! 클래스 메서드는 사용이 불가능!
모든 인스턴스 메서드에는 this 참조 변수가 숨겨진 지역 변수로 존재하고 있다.
class Product2 {
private int num;
private int price;
private int amount;
private String name;
public Product2() {}; // 아무것도 없는 생성자 만들어주고
public Product2(int num, int price, int amout, String name) {
this.num = num; //this
this.price = price;
this.amount = amout;
this.name = name;
}
생성자의 매개변수 (int num, int price, int amout, String name)와 인스턴스 변수 (private int num; / private int price; / private int amount; / private String name; ) 가 같을 경우에는 인스턴스 변수 앞에 this 키워드를 붙여 구분해야 한다.
this() 메서드 :
생성자 내부에서만 사용할 수 있으며, 같은 클래스의 다른 생성자를 호출할 때 사용.
class Product2 {
private int num;
private int price;
private int amount;
private String name;
public Product2(int num, int price, int amout, String name) {
this.num = num; //this
this.price = price;
this.amount = amout;
this.name = name;
}
Product2() {
this(2012, 1600, 1, "새우깡"); // 값이 있는 다른 생성자를 this ( ) 로 호출
}
위의 예제에서 매개변수를 가지는 첫 번째 생성자는 this 참조 변수를 사용하여 인스턴스 변수에 접근
매개변수를 가지지 않는 두 번째 생성자는 내부에서 this() 메소드를 이용하여 첫 번째 생성자를 호출한다.
이렇게 내부적으로 다른 생성자를 호출하여 인스턴스 변수를 초기화할 수 있다.
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - 초기화 블록 (0) | 2023.02.28 |
---|---|
[JAVA] 객체지향 - static (0) | 2023.02.28 |
[JAVA] 객체지향 - 메서드 오버로딩 (0) | 2023.02.28 |
[JAVA] 객체지향 - 생성자 (0) | 2023.02.28 |
[JAVA] 객체지향 - 클래스 (class) (0) | 2023.02.28 |