본문 바로가기
JAVA/언어입문

자바(JAVA) - 예약어 this

by Sunyoung95 2022. 3. 16.
this
  • 사용 용도
    • 자신의 메모리를 가리킴
    • 생성자에서 다른 생성자를 호출
    • 자신의 주소를 반환
public class Student {
    int studentID;
    String studentName;
    int grade;
    
    // 자신의 메모리를 가리킴
    public Student(int studentID, String studentName) {
    	this.studentID = studentID;
        this.studentName = studentName;
    }
    
    // 생성자에서 다른 생성자를 호출
    public Student() {
    	this(0, "이름없음")
    }
    
    // 자신의 주소를 반환
    public Student showthis() {
    	return this;
    }
}

 

 

    1. 자신의 메모리를 가리킴
        1. public class StudentTest {
          	public static void main(String[] args) {
              	Student Ryu = new Student(100, "sunyoung");
              }
          }
      1. 생성된 각 인스턴스별로 참조값이 다르고 이 참조값이 가리키는 메모리를 가리키는 예약어
      2. 생성된 인스턴스 스스로를 가리키는 예약어
      3. 위의 this.studentID는 인스턴스가 생성되었을때 할당받은 메모리(this) 내의 변수 studentID를 가리킨다
      4. 뒤의 할당하는 studentID는 생성자로 초기화 할 때 ()안에 스스로 지정하는 값
    2. 생성자에서 다른 생성자를 호출
      1. 생성자 overloading : 생성자를 2개 이상 구현
      2. public calss Student {
            int studentID;
            String studentName;
            int grade;
            
            public Student() {
            	// 아무것도 지정하지 않은채로 인스턴스를 생성하면 아래의 생성자를 불러와서 0, "이름없음"을 넣음
                this(0, "이름없음");
            }
        
            public Student(int studentID, String studentName) {
                this.studentID = studentID;
                this.studentName = studentName;
            }
        }
      3. this를 사용하여 다른 생성자를 호출 할 때는 그 이전에 어떠한 statement(code)도 사용해선 안된다.
        1. =생성자 내 가장 첫 줄이어야 한다.
    3. 자신의 주소를 반환
      1.     public Student showthis() {
            	return this;
            }
      2. 클래스 내에 위와같은 메서드를 설정하면 각 생성된 인스턴스의 heap주소를 가리키는 참조값을 반환한다.
      3. 잘 사용하지 않는 방법

댓글