• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

22.04.05 20:43 작성 조회수 155

0

public Bus(int busNumber) {

    this.busNumber = busNumber;

}

 

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

이 코드가 이해가 안가는데 

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

 

답변 2

·

답변을 작성해보세요.

1

seung lee님의 프로필

seung lee

2022.04.06

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

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

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

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

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

0

@k1m2njun님의 프로필

@k1m2njun

2023.02.17

public Bus(int busNumber) {

    this.busNumber = busNumber;

}

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

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

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

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


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

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

public Bus() {}

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