인프런 커뮤니티 질문&답변

한재님의 프로필 이미지
한재

작성한 질문수

김영한의 실전 자바 - 중급 1편

생성자에서 객체 생성..?

작성

·

125

0

    public Car(String model, int chargeLevel) {
        this.model = model;
        this.chargeLevel = chargeLevel;
        this.engine = new Engine(this);
    }

생성자에서 객체 생성하는 부분이 이해가 안돼요.

  1. CarMain에서 인스턴스 생성할 때 모델, 차지레벨 받는 거까진 이해가 되는데

  2. Car인스턴스에 엔진 필드를 새로운 엔진 객체로 받는건가요..?

  3. 그리고 또 그 엔진 객체엔 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가 들어가겠죠)

한재님의 프로필 이미지
한재
질문자

각각의 엔진을 주려고 저렇게 쓰는 거군요.. 감사합니다..!

한재님의 프로필 이미지
한재

작성한 질문수

질문하기