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;
}
}
- 자신의 메모리를 가리킴
-
public class StudentTest {
public static void main(String[] args) {
Student Ryu = new Student(100, "sunyoung");
}
}

- 생성된 각 인스턴스별로 참조값이 다르고 이 참조값이 가리키는 메모리를 가리키는 예약어
- 생성된 인스턴스 스스로를 가리키는 예약어
- 위의 this.studentID는 인스턴스가 생성되었을때 할당받은 메모리(this) 내의 변수 studentID를 가리킨다
- 뒤의 할당하는 studentID는 생성자로 초기화 할 때 ()안에 스스로 지정하는 값
- 생성자에서 다른 생성자를 호출
- 생성자 overloading : 생성자를 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;
}
}
- this를 사용하여 다른 생성자를 호출 할 때는 그 이전에 어떠한 statement(code)도 사용해선 안된다.
- =생성자 내 가장 첫 줄이어야 한다.
- 자신의 주소를 반환
-
public Student showthis() {
return this;
}
- 클래스 내에 위와같은 메서드를 설정하면 각 생성된 인스턴스의 heap주소를 가리키는 참조값을 반환한다.
- 잘 사용하지 않는 방법
댓글