인스턴스 자신의 메모리를 가리킴
↳객체를 new하면 heap에 생성이 되는데 이 주소값을 갖는 얘를 참조변수라고 하는데 그 값 자체를 참조값,레퍼런스 value라고 하는데 그 변수자체는 인스턴스 외부에 해당되고 그 변수가 인스턴스를 가리키게되는데 인스턴스 자체 내부에서 자기자신의 주소값을 갖는 것을 this라고 한다.
public static void main(String[] args {
BirthDay day = new BirthDay();
day.setYear(2000);
}
public void setYear(int year){
this.year = year;
}
생성된 인스턴스 메모리의 주소를 가짐
↳ 클래서 내에서 참조변수가 가지는 주소값과 동일한 주소값을 가지는 키워드
생성자에서 또 다른 생성자를 호출 할떄 사용
↳클래서에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음.
↳생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statemenet를 쓸 수 없음.
(생성자의 역할은 인스턴스를 초기화하는 것임.)
자신의 주소를 반환하는 this
puvlic class Person {
String name;
int age
public Person(){
// int num = 10;
// name = "test" (X)
this("no name",1); // first statement 가 되야함,
//이 밑에다가 쓰는 것은 괜찮음(이 construct가 불리고 난 후기 때문에)
}
public Person(String name, int age) {
this.name - name;
this.age = age;
}
public void showPerson(){
System.out.println(name + "," + age);
}
public Person getPerson(){
return this;
}
public static void main(String][ args) {
Person person = new Person(); //default construct
person.showPerson();
System.out.println(person);
Person person2 = person.getPerson();
System.out.println(person2);
// person과 person2의 주소값이 같음
}
↳ 아무런 값이 안들어왔을 때는 초기화를 시키고 싶음
그 코드가 밑에 있으니 그대로 불러옴(생성자에서 다른 생성자를(이미구현된) 불러옴.