Java

2024.04.23 Composition(포함관계) (2)

정훈5 2024. 4. 23. 15:13

도전 과제

package basic.exercise.test01;

public class A {
	
	B b;
	
	public A() {
		b = new B();
	}
}

 

package basic.exercise.test01;

public class B {

	C c;
	
	public B() {
		c = new C();
	}
	
}

 

package basic.exercise.test01;

public class C {
	
	D d;
	
	public C() {
		d = new D();
	}

}

 

package basic.exercise.test01;

public class D {
	
	private String name;
	
	public D() {
		name = "나는 D 이다.";
	}
	
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}

}

 

package basic.exercise.test01;

public class MainTest1 {
	// 코드의 시작
	public static void main(String[] args) {
		
		// 문제 1번
		A a = new A();
//		a.b.c.d.getName();
		System.out.println( a.b.c.d.getName() );
		// A 참조변수로 시작해서 D에 name 값을
		// 화면에 출력 하시오.S
		

	} // end of main

} // end of class

 

 

---------------------------------------------------------------------------------------------------

 

package basic.exercise.test02;

public class A{
	
	private B b;
	
	public void setB(B b) {
		this.b = b;
	}
	
	public B getB() {
		return b;
	}
} // end of class

 

package basic.exercise.test02;

public class B {

	private C c;
	
	public void setC(C c) {
		this.c = c;
	}
	
	public C getC() {
		return c;
	}

}

 

package basic.exercise.test02;

public class C {
	
	private D d;
	
	public void setD(D d) {
		this.d = d;
	}
	
	public D getD() {
		return d;
	}
	
	
}

 

package basic.exercise.test02;

public class D {
	
	private String name;
	
	public D() {
		name = "나는 D 이다.";
	}
	
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}

}

 

package basic.exercise.test02;

public class MainTest1 {
	// 코드의 시작
	public static void main(String[] args) {
		
		// 문제 1번
		A a = new A();
		B b = new B();
		C c = new C();
		D d = new D();
		
		// 메서드 의존 주입
		a.setB(b);
		b.setC(c);
		c.setD(d);
		
		
		// 각 클래스 내부에서(A, B, C, D) 객체를 생성하지 않고
		// 외부에서 객체를 주입한 후 D에 getName() 호출 하시오.
		
		// 외부에서 주입 받을 수 있도록 코드를 작성
		System.out.println(a.getB().getC().getD().getName());

	} // end of main

} // end of class

'Java' 카테고리의 다른 글

2024.04.24 의존관계  (0) 2024.04.24
2024.04.23 연관, 의존 관계란?  (0) 2024.04.23
2024.04.23 Composition(포함관계)  (0) 2024.04.23
2024.04.23 상속(Inheritance)  (0) 2024.04.23
2024.04.23 메서드 오버로딩  (0) 2024.04.23