본문 바로가기
기초 및 언어/▶ Java&JSP

19. 포함

by 류딩이 2025. 8. 19.

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