- 연관관계(Association)와 포함관계(Composition)는 객체지향 프로그래밍에서 객체 간의 관계를 나타내는 두 가지 다른 개념입니다. 그러나 이 둘은 완전히 독립적인 개념이 아니며, 포함관계는 연관관계의 특수한 형태로 볼 수 있습니다. 즉, 모든 포함관계는 연관관계입니다만, 모든 연관관계가 포함관계인 것은 아닙니다.
- 연관 관계(Association)는 일반적으로 한 클래스의 객체가 다른 클래스의 객체와 상호작용을 하지만, 둘 사이의 생명주기에 대한 의존성은 갖지 않는 경우를 의미합니다. 예를 들어, 한 은행(Bank)과 여러 고객(Customer) 사이의 관계가 연관 관계의 사례가 될 수 있습니다. 고객은 하나의 은행에 계좌를 가질 수 있고, 은행은 여러 고객을 가질 수 있지만, 고객의 생명주기는 은행에 의존하지 않습니다.
1. 연관관계(Association) 이란?
Bank.java
euum 열거형 연
Customer.java
BankTest.java
2. 의존관계(Dependency) 에 대해 알아 보자.
- 의존관계는 한 클래스가 다른 클래스를 사용하는 관계를 나타냅니다.즉, 어떤 클래스가 다른 클래스를 참조하는 것을 말합니다. 이는 한 클래스의 변경이 다른 클래스에 영향을 줄 수 있음을 의미합니다.
- 예를 들어, 자동차 클래스가 엔진 클래스에 의존할 때, 자동차 클래스는 엔진을 사용하고 있으며, 엔진 클래스의 변경이 자동차 클래스에 영향을 줄 수 있습니다.
💡 정리
의존관계 (Dependency):
의존관계는 한 클래스가 다른 클래스를 사용하는 관계를 나타냅니다. 한 클래스가 다른 클래스에 의존할 때, 의존관계가 형성됩니다. 이는 한 클래스의 변경이 다른 클래스에 영향을 줄 수 있음을 의미합니다. 예를 들어, 자동차 클래스가 엔진 클래스에 의존할 때, 자동차 클래스는 엔진을 사용하고 있으며, 엔진 클래스의 변경이 자동차 클래스에 영향을 줄 수 있습니다.
도전 문제 - 학생과 학급은 어떤 관계로 바라볼 수 있을까?
Classroom 객체와 Student 객체는 연관 관계를 형성하고 있습니다. 단 Classroom 안에 Student[ ] 배열을 가지고 있지만 단순히 저장하는 용도 이며 Student 필드를 가지고 있지 않습니다. 이는 직접 적인 포함 관계를 나타내지 않습니다.
'Java' 카테고리의 다른 글
중요한! 인터페이스(interface) (0) | 2024.04.25 |
---|---|
다형성(Polymorphism) (0) | 2024.04.25 |
POWER JAVA 예제) 4-1,2,3 (0) | 2024.04.23 |
Composition(포함관계) (0) | 2024.04.23 |
상속(Inheritance) (0) | 2024.04.23 |