- [Java] 39. 포함 관계2024년 04월 23일
- Song hyun
- 작성자
- 2024.04.23.:52
728x90반응형[Java] 39. 포함 관계
1. 포함 관계(Composition)
-포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말한다.
자바에서 포함 관계는 한 클래스가 다른 클래스를 자신의 필드(=멤버 변수)로 포함하는 것을 말한다.
-이 개념은 "has-a" 관계로도 불린다.
-이는 객체 간의 강한 연관성을 뜻하며, 하나의 객체가 다른 객체 없이는 존재할 수 없을 때 쓰인다.
2. 포함 관계의 특징
-포함된 객체는 포함하는 객체 안에서만 존재하며, 포함하는 객체가 파괴되면 포함된 객체도 함께 파괴된다.
-이 관계는 객체간의 강한 의존성을 특징으로 하며, 소유한 객체가 완전한 책임을 진다.
-포함관계는 연관관계보다 더 강한 연결을 의미한다.
연습문제 1.
(1) 클래스 Computer/CPU를 만들고, 둘을 포함관계로 만들어라.
(2) 포함관계를 응용한 메서드를 만들어라.
풀이 과정:
(1) 클래스 Computer/CPU를 만들고, 둘을 포함관계로 만들어라.
-클래스 Computer/CPU를 생성한다.
-클래스 생성을 완료했다면, 각각의 클래스에 변수를 선언한다.
이 때, Computer의 변수에 CPU를 포함시킨다.
(2) 포함관계를 응용한 메서드를 만들어라.
-CPU는 컴퓨터가 작동하기 위해 필요한 부품이다.
이를 표현하기 위해, 호출시 스크립트를 출력하는 start/stop 메서드를 선언한다.
-Computer 클래스에도 똑같이 start/stop 메서드를 선언한다.
단, 이 때 CPU 클래스의 start/stop 메서드를 해당 메서드 내부에 호출한다.
-> CPU 클래스의 객체를 변수로 가지며. 메서드 호출 시 CPU 속의 메서드도 함께 호출되는 것을 확인할 수 있다.
package basic.ch18; public class Computer { String name; int price; CPU cpu; public Computer() { cpu = new CPU(); } public void StartComputer() { System.out.println("컴퓨터의 전원을 켭니다."); this.cpu.start(); } public void StopComputer() { System.out.println("컴퓨터의 전원을 끕니다."); this.cpu.stop(); } public static void main(String[] args) { Computer pc1=new Computer(); pc1.StartComputer(); pc1.StopComputer(); pc1.cpu.name="오늘 산 CPU"; System.out.println(pc1.cpu.name); } }
package basic.ch18; public class CPU { String name; int price; void start() { System.out.println("CPU가 작동합니다."); } void stop() { System.out.println("CPU가 작동을 멈춥니다."); } }
728x90반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 41. 연관 관계와 의존 관계 (0) 2024.04.23 [Java] 40. 메서드 오버로딩, 상속 응용: 유닛에 마린, 질럿, 저글링 상속시키기 (0) 2024.04.23 [Java] 38. 상속 관계와 메서드 오버라이딩 (0) 2024.04.23 [Java] 37. 메서드 오버로딩 (0) 2024.04.23 [Java] 36. 배열 활용: 랜덤 숫자 생성기 (0) 2024.04.22 다음글이전글이전 글이 없습니다.댓글