작성
·
123
0
public Car(String model, int chargeLevel) {
this.model = model;
this.chargeLevel = chargeLevel;
this.engine = new Engine(this);
}
생성자에서 객체 생성하는 부분이 이해가 안돼요.
CarMain에서 인스턴스 생성할 때 모델, 차지레벨 받는 거까진 이해가 되는데
Car인스턴스에 엔진 필드를 새로운 엔진 객체로 받는건가요..?
그리고 또 그 엔진 객체엔 this로 받는 게 car인건가요..?
헷갈려서 어떻게 질문드려야할지도 잘 모르겠어요..
답변 1
1
얼핏이해하고 계신것 같긴한데, 이해하신게 맞습니다.
예를들어 SM5, G70이라는 두가지 Car인스턴스가 있을때
SM5는 SM5를 위한 엔진이 필요하고, G70은 G70을 위한 엔진이 필요한겁니다.
예를들어
G70을 생산할때
=> new Car(...)
G70을 위한 엔진을 생산해서 G70에 부착 (생성자의 필드에 정의) 해주는겁니다.
=> 생성자안의 this.engine = new Engine(this)
그때 G70이라는것이 this입니다. (sm5를 생성하는 생성자에서는 sm5가 들어가겠죠)
각각의 엔진을 주려고 저렇게 쓰는 거군요.. 감사합니다..!