컴퓨터공학 💻 도서관📚

Part2. 2-12 this 본문

✅🌲강의 복습 노트/패캠 JavaSpring 강의,코드 복습

Part2. 2-12 this

들판속초록풀 2024. 12. 27. 22:35

this가 하는 일
1. 인스턴스 자기 자신의 메모리를 가리킴

     ( ex. this.name = name; )
2. 생성자에서 또 다른 생성자를 호출 할때 사용 (super 도 동일함)

     ( ex. this("이름없음", 1); )
3. 자신의 주소(참조값) 자체를 반환할 때도 사용함

     ( ex. return this; )

 


함수나 메서드가 호출이 되면 그 함수와 메서드의 지역변수는 stack 메모리에 할당된다
객체를 new 키워드로 생성해서 생성된 인스턴스는 heap 메모리, 동적 메모리에 할당된다

 


2. 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음

 

생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로

this() statement 이전에 다른 명령문을 쓸 수 없음

public class Person {

	String name;
	int age;
	
	public Person() {
    
       // this() statement 이전에 다른 명령문을 쓸 수 없음, this 이후에 써야 함
       
		this("이름없음", 1);   // 생성자에서 다른 생성자를 호출
	}                             // 매개변수에 맞는 생성자가 호출된다    
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
}



3. 자기 자신의 주소를 반환하면 주소는 다음 형태로 출력된다

ch12.Person@1175e2ddb

패키지까지 포함된 클래스의 풀네임  +  @  +  jvm이 할당해 준 주소

public class Person {

	String name;
	int age;
	
	public Person() {
		this("이름없음", 1);
	}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public Person getPerson() {    // 반환 타입은 해당 객체
		return this;           // 자기 자신의 주소를 반환
	}
	
	
	public static void main(String[] args)
	{
		Person p = new Person();
		p.name = "James";
		p.age = 37;
		
		Person p2 = p.getPerson();
		System.out.println(p);
		System.out.println(p2);
	}
}
Comments