본문으로 바로가기

연관, 의존 관계란?

category Java 2024. 4. 24. 18:53
  • 연관관계(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