Oracle 1z0-808 Exam: Question #7 해설
질문 원본 내용
Given the following class declarations:
abstract class Planet {
protected void revolve() { // line n1
}
abstract void rotate(); // line n2
}
class Earth extends Planet {
void revolve() { // line n3
}
protected void rotate() { // line n4
}
}
And the following main method:
Car c1 = new Car("Auto");
Car c2 = new Car("4W", 150, "Manual");
System.out.println(c1.type + " " + c1.maxSpeed + " " + c1.trans);
System.out.println(c2.type + " " + c2.maxSpeed + " " + c2.trans);
What is the result?
A. 4W 100 Auto 4W 150 Manual
B. null 0 Auto 4W 150 Manual
C. Compilation fails only at line n1
D. Compilation fails only at line n2
E. Compilation fails at both line n1 and line n2
질문 번역
다음은 Java 클래스와 생성자에 관한 코드 예시입니다:
class Vehicle {
String type = "4W";
int maxSpeed = 100;
Vehicle(String type, int maxSpeed) {
this.type = type;
this.maxSpeed = maxSpeed;
}
Vehicle() {}
}
class Car extends Vehicle {
String trans;
Car(String trans) { // line n1
this.trans = trans;
}
Car(String type, int maxSpeed, String trans) { // line n2
super(type, maxSpeed);
this.trans = trans;
}
}
그리고 다음 코드를 실행할 때 결과는 무엇일까요?
Car c1 = new Car("Auto");
Car c2 = new Car("4W", 150, "Manual");
System.out.println(c1.type + " " + c1.maxSpeed + " " + c1.trans);
System.out.println(c2.type + " " + c2.maxSpeed + " " + c2.trans);
A. 4W 100 Auto 4W 150 Manual
B. null 0 Auto 4W 150 Manual
C. line n1에서만 컴파일 실패
D. line n2에서만 컴파일 실패
E. line n1과 line n2 모두에서 컴파일 실패
정답: A. 4W 100 Auto 4W 150 Manual
해설
이 코드를 분석하면 다음과 같습니다:
Car
클래스는Vehicle
클래스를 확장(상속)합니다.Car
클래스에는 두 개의 생성자가 있습니다. 첫 번째 생성자(Car(String trans)
)는trans
필드만 초기화하고, 두 번째 생성자(Car(String type, int maxSpeed, String trans)
)는super(type, maxSpeed)
를 호출하여 부모 클래스(Vehicle
)의type
과maxSpeed
필드를 초기화한 다음,trans
필드를 초기화합니다.Car
객체c1
은 첫 번째 생성자를 사용하여 생성되며trans
만 "Auto"로 설정됩니다.type
과maxSpeed
는Vehicle
클래스에서 선언된 기본값인 "4W"와 100을 갖게 됩니다.Car
객체c2
는 두 번째 생성자를 사용하여 생성되며,type
,maxSpeed
,trans
모두 명시적으로 설정됩니다.
코드에는 컴파일을 방해할 만한 문제가 없으므로, 컴파일 오류에 대한 옵션 C, D, E는 모두 부정확합니다.
코드가 성공적으로 컴파일되고 실행된다면, c1
과 c2
객체의 필드는 다음과 같이 출력됩니다:
c1
의type
: "4W" (부모 클래스Vehicle
의 기본값)c1
의maxSpeed
: 100 (부모 클래스Vehicle
의 기본값)c1
의trans
: "Auto" (생성자에서 설정된 값)c2
의type
: "4W" (생성자에서 설정된 값)c2
의maxSpeed
: 150 (생성자에서 설정된 값)c2
의trans
: "Manual" (생성자에서 설정된 값)
따라서 출력 결과는 "4W 100 Auto 4W 150 Manual"이 되며, 올바른 답변은 A입니다.
'Oracle 1z0-808 Exam' 카테고리의 다른 글
Oracle 1z0-808 Exam 2024: Question #9 (0) | 2024.02.21 |
---|---|
Oracle 1z0-808 Exam 2024: Question #8 (0) | 2024.02.20 |
Oracle 1z0-808 Exam 2024: Question #6 (0) | 2024.02.19 |
Oracle 1z0-808 Exam 2024: Question #5 (0) | 2024.02.18 |
Oracle 1z0-808 Exam 2024: Question #4 (0) | 2024.02.18 |
댓글