this가 하는 일
- 인스턴스 자신의 메모리를 가리킴
- 생성자에서 또 다른 생성자를 호출할 때 사용
- 자신의 주소(참조값)을 반환 함
생성된 인스턴스 메모리의 주소를 가짐
public void setYear(int year){
this.year = year; // 반드시 this를 써야함
}
- 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드
생성자에서 다른 생성자를 호출하는 this
public class Person{
String name;
int age;
public Person(){
this("이름없음", 1); // 생성자 호출
}
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
- 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음
- 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this statement 이전에 다른 statement를 쓸 수 없음
자신의 주소를 반환하는 this
public class Person{
String name;
int age;
public Person(){
this("이름없음", 1); // 아무 값도 안들어 왔을 때 초기화하고 싶은 경우
}
public Person(String name, int age){
this.name = name;
this.age = int;
}
public Person getPerson(){
return this; // 여기서 this를 반환 -> 자기 자신을 반환
}
public static void main(String[] args){
Person p = new Person();
p.name = "James";
p.age = 37;
Person p2 = p.getPerson();
// this를 받았기 때문에 p2는 p와 동일한 주소를 가지게 된다.
System.out.println(p);
System.out.println(p2);
}
}
결과
2023 KAKAO Tech Campus_BackEnd 필수 과정
Java 1주차 강의 정리 내용입니다.
'개발 > Java' 카테고리의 다른 글
[1주차] Java 중급 - 버스 타고 학교 가는 학생의 과정을 객체 지향 프로그래밍으로 구현해보기 (0) | 2023.06.24 |
---|---|
[1주차] Java 중급 - 객체 간의 협력(collaboration) (0) | 2023.06.24 |
[1주차] Java 중급 - 캡슐화(encapsulation) (0) | 2023.06.24 |
[1주차] Java 중급 - 접근 제어 지시자(access modifier)와 정보 은닉(infomation hiding) (0) | 2023.06.24 |
[1주차] Java 중급 - 참조 자료형 변수 (0) | 2023.06.24 |