Hello, Android!
클래스의 관계 본문
프로그래밍을 하면서 여러개의 클래스가 만들어지면
각각의 클래스들은 상속과 같이 서로 다른 클래스와 관계가 만들어지고
메시지를 주고받을수 있다
이는 약하게 연결된 관계부터, 강하게 결합된 관계가 있다
약하게 참조되고 있는 관계로는 연관, 의존 관계가 있다
이러한 관계에서는 소유의 개념 없이 한 객체가 다른 객체를 이용한다고 볼수있으며
각각의 생명주기또한 다르다
강하게 연결되어있는 합성, 구석 관계에 있는 경우
아주 밀접하게 연관되어있어 혼자서는 존재하기 힘든 경우를 말한다
- 연관 관계
Teacher클래스와 Student클래스의 classInfo함수에서는 서로의 객체를 필요로 하고있다
하지만 객체 생성에는 아무런 영항을 미치치 않으며 서로 독립된 생명주기를 갖고있다
이렇게 객체의 생명주기에 영향을 주지 않으면 연관관계 라고 한다
- 의존 관계
이번에는 Student클래스의 객체를 생성할때 Teacher클래스의 객체를 매개변수로 받고 있다
이런 경우 Student는 Teacher에 의존하게 된다
- 집합 관계
집합 관계는 연관 관계처럼 객체의 생성과 생명주기에 영향을 미치지 않는다
하지만 객체를 소유한다는 개념이 추가되었다
여러명의 학생을 한 선생님에게 수업을 받기 위해 MutableList를 이용하여 하나의 리스트에 담았다
- 구성 관계
구성 관계의 특징은 클래스가 다른 클래스의 한 부분이 되어 구성되어지는 클래스를 사용하는
클래스의 객체가 죽으면 구성 클래스도 죽게 된다
위의 경우 engine클래스는 car클래스의 객체가 생성되면서 engine의 객체도 생성이 되고
car의 객체가 죽으면 engine의 객체도 죽는다