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

밍밍이님의 프로필 이미지
밍밍이

작성한 질문수

Do it! 자바 프로그래밍 입문 with 은종쌤

클래스와 객체2 (2)

this 부분이 이해가 잘 안가요...

작성

·

205

0

public Bus(int busNumber) {

    this.busNumber = busNumber;

}

 

머리속에 어느정도 이해가 가는듯하면서도 

이 코드가 이해가 안가는데 

설명해주실분 계신가요..ㅠ

 

답변 2

1

일단 public Bus(int busNumber){ } 가 생성자인건 알고 계신가요?

Bus라는 클래스의 객체를 생성할 때 호출하는 메서드입니다.

생성자를 정의하지 않아도 생성은 가능합니다. 기본적으로 public Bus() { } 가 호출돼요

근데 ( ) 안에 int busNumber를 써줌으로써 객체를 생성할 때 무조건 int형으로 매개변수를 받게끔 해둔 거예요

Bus 객체를 생성할 때 int형으로 받은 숫자를 Bus 객체의 busNumber 변수에 저장하겠다는 뜻입니다. 

0

public Bus(int busNumber) {

    this.busNumber = busNumber;

}

여기에 쓰인 'this'는 인스턴스 자신의 메모리를 가리키는 것입니다.

'Bus'라는 클래스의 객체(인스턴스)를 생성할 때에
'busNumber'라는 매개변수를 받아서

'Bus' 클래스 인스턴스의 멤버변수 'busNumber'에
저장하는 것입니다.

즉 'Bus'클래스의 객체를 만들면서 속성값을 초기화하는 것입니다.


위의 답변에 추가로 말씀드리자면,

매개변수를 받는 생성자를 코드에 작성하면
컴파일러는 기본 생성자(디폴트 생성자)를 제공하지 않습니다.

public Bus() {}

즉 이렇게 아무 매개변수도 받지 않는 '기본생성자'를
따로 작성하지 않으면, 매개변수를 받지 않는 객체를 생성할 수 없습니다.

밍밍이님의 프로필 이미지
밍밍이

작성한 질문수

질문하기