포함 관계를 이해하기위해
우선 Car라는 클래스와 engine이라는 클래스의 연관점을 살펴보자
engine은 Car의 부속품 즉 혼자서는 쓸수없는 클래스가 되며
이를 포함 관계라고 한다
Car안에 engine을 포함시키기 위해서는
클래스 자체를 멤버 변수로 선언해야한다;
Engine 클래스를 참조하는 engine 이라는 변수를 선언하고
엔진 클래스에는 start라는 메소드와 stop이라는 메소드를 작성해보자
내가 Car클래스에서 engine변수를 이용해 메소드를 호출하려면 어떻게 해야할까?
답은 간단하다 .연산자를 통해 메소드를 호출하면된다
Car 메소드 안에 startCar 메소드를 만들어 engine.start 메소드를 호출하여
메세지가 같이 출력되게 만든다
여기서 문제 한가지 이대로 CarTest라는 클래스를 만들어 메인에서
car객체를 생성하여 메소드를 호출하면 정상적으로 작동이될까?
정답은 아니오 이다.
CarTest에 car라는 객체는 생성되었지만
engine이라는 객체는 생성되지않았기때문에 engine의 메소드를 호출할수가 없게된다
이 문제를 해결하기 위해서는 car객체가 생성될때 engine의 객체도 생성이되게 만들면 된다.
car객체가 생성이될때에 engine이라는 객체도 생성이되게 생성자를 만들어서
이 문제를 해결했다.