객체 자신을 가리키는 this

서이·2022년 2월 14일
0

Java

목록 보기
4/27

인스턴스 자신의 메모리를 가리킴
↳객체를 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의 주소값이 같음
    }    
        

↳ 아무런 값이 안들어왔을 때는 초기화를 시키고 싶음
    그 코드가 밑에 있으니 그대로 불러옴(생성자에서 다른 생성자를(이미구현된) 불러옴.


profile
작성자 개인이 잊을 때마다 보라고 정리한 글

0개의 댓글

관련 채용 정보