1. 포함(Composition)
포함(Composition)
한 클래스가 다른 클래스의 객체를 멤버 변수로 가지는 것을 말합니다.
1. 포함(Composition, Has-a 관계)
Student는 Person을 상속받지 않고, 내부에 멤버 변수로 포함함
2. 생성자에서 포함 객체 초기화
p = new Person(name, age);
- Student 생성자에서 Person 객체를 생성하여 멤버로 저장
- 따라서 Student 객체 안에는 Person 객체가 함께 존재하게 됨
class Person{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void display() {
System.out.println("name :" + name);
System.out.println("age :" + age);
}
} // Person 끝
class Student{
int kor, eng, math;
// 주소가 들어감
Person p; //(포함!!) : Student에 Person의 변수를 멤버변수로 넣음 p는 임의지정
public Student(String name, int age, int kor, int eng, int math) { // 5개의 인자를 생성자 생성
p = new Person(name, age);
this.kor = kor;
this.eng = eng;
this.math = math;
}
public void display() { //오버로딩x, 오버라이딩x
System.out.println("name :" + p.name);
System.out.println("age :" + p.age);
System.out.println("kor :" + kor);
System.out.println("eng :" + eng);
System.out.println("math :" + math);
}
}
public class Ex03_포함 {
public static void main(String[] args) {
Student s = new Student("kim", 20, 70, 80, 90);
s.display();
}
}
✅ 요약
- Student 클래스는 Person을 상속하지 않고 포함시켜 사용
- 이름과 나이 출력은 p.name, p.age처럼 포함된 객체를 통해 접근
- 이는 상속보다 유연한 객체 설계 방식의 예시
'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글
| 21. 다형성, 업캐스팅, 다운캐스팅 (2) | 2025.08.20 |
|---|---|
| 20. 제어자, 접근제어지시자(Access Modifier)와 기타제어자 (0) | 2025.08.19 |
| 18. 상속 (0) | 2025.08.19 |
| 17. 생성자 (2) | 2025.08.18 |
| 16. setter/ getter (2) | 2025.08.18 |