개발공부/Java
[Java] 07. 객체 자신을 가리키는 this / 객체 간의 Collaboration
sangyeon
2021. 11. 22. 22:08
728x90
1. this가 하는 일
- 인스턴스 자신의 메모리를 가리킴
- 생성자에서 또 다른 생성자를 호출할 때 사용
- 자신의 주소(참조값)을 반환 함
2. 생성된 인스턴스 메모리 주소를 가짐
- 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드
> this는 참조변수 day와 동일하게 인스턴스의 주소 값을 가리키고 있다.
public void setYear(int year){ this.year = year; } |
3. 생성자에서 다른 생성자를 호출하는 this
- 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있다.
- 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다른 statement를 쓸수 없다.
ex) public() {
int num = 10; > 불가능
String name = "no name"; > 불가능
this("no name", 1)
}
ex)
public class Person { String name; int age; public Person() { this("이름없음", 1); } public Person(String name, int age) { this.name = name; this.age = age; } } |
4. 자기 자신의 주소를 반환하는 this
public Person getPerson() { return this; } public static void main(String[] args) { Person p1 = new Person(); p1.showPerson(); System.out.println(p1); System.out.println(p1.getPerson()); } =================== result ===================== no name, 1 ch12.Person@5e91993f ch12.Person@5e91993f |
5. 객체 간의 협력(콜라보)
객체 지향 프로그래밍에서의 협력
- 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐
- 협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현 됨
- 매개 변수로 객체가 전달되는 경우가 발생
- 아래는 객체 협력의 예
> ex) 학생이 버스를 탄다는 행위 > 버스를 탈 때, 학생의 가진 돈은 줄어든다 > 버스의 속성 중에 수입이 늘어난다
* 다음 장에서는 실제로 객체 지향 프로그래밍의 예제를 진행해보도록 해보자!!
ex) 각각 두명의 학생이 버스와 지하철을 타고 학교에 가는 과정을 객체 지향 프로그래밍으로 구현.
728x90