작성
·
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() {}
즉 이렇게 아무 매개변수도 받지 않는 '기본생성자'를
따로 작성하지 않으면, 매개변수를 받지 않는 객체를 생성할 수 없습니다.