728x90
728x170
[1Z0-808][OCAJP] Dump 문제 41~50
문제 41
Given :
class Vehicle {
int x;
Vehicle() {
this(10); // line n1
}
Vehicle(int x) {
this.x = x;
}
}
class Car extends Vehicle {
int y;
Car() {
super();
this(20); // line n2
}
Car(int y) {
this.y = y;
}
public String toString() {
return super.x + ":" + this.y;
}
}
And given the code fragment :
Vehicle y = new Car();
System.out.println(y);
Q. What is the result? | |
A | 10:20 |
B | 0:20 |
C | Compilation fails at line n2 |
D | Compilation fails at line n1 |
정답
C
해설/결과
this(20); // Call to 'this()' must be first statement in constructor body |
- this()가 첫 번째 라인이 아닌 아닌 두 번째 라인에서 사용되었기 때문에 발생한 문제.
- 또한 컴파일러는 super()를 함축적으로(implicitly) 첫 번째 라인에 추가하게 되는데, 사용자가 임의적으로 super()를 첫 번째 라인에 추가할 경우 중복(duplicate)되어 컴파일 오류가 발생하게 된다.
문제 42
Given the code fragment :
int a[] = {1, 2, 3, 4, 5};
for (XXX) {
System.out.print(a[e]);
}
Q. Which option can replace XXX to enable the code to print 135? | |
A | int e = 0; e < 5; e += 2 |
B | int e = 1; e <= 5; e += 1 |
C | int e = 0; e <= 4; e++ |
D | int e = 1; e < 5; e += 2 |
정답
A
해설/결과
- B : java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
- C : 12345
- D : 24
문제 43
Given the code fragment :
public class Person {
String name;
int age = 25;
public Person(String name) {
this(); // line n1
setName(name);
}
public Person(String name, int age) {
Person(name); // line n2
setAge(age);
}
// setter and getter methods go here
public String show() {
return name + " " + age + " " + number;
}
public static void main(String[] args) {
Person p1 = new Person("Jesse");
Person p2 = new Person("Walter", 52);
System.out.println(p1.show());
System.out.println(p2.show());
}
}
Q. Which three lines fail to compile? | |
A | Compilation fails only at line n1 |
B | Compilation fails at both line n1 and line n2 |
C | Compilation fails only at line n2 |
D | Jesse 25 Walter 52 |
정답
B
해설/결과
- Line n1 : 최소 1개의 생성자가 있을 경우, 자바는 기본(Default) 생성자를 추가하지 않기 때문에 컴파일 오류가 발생한다.
- Line n2 : 지역 클래스에서 생성자를 호출하려면 this를 사용해야 한다. 따라서 컴파일 오류가 발생한다.
문제 44
Given :
interface Readable {
public void readBook();
public void setBookMark();
}
abstract class Book implements Readable { // line n1
public void readBook() { }
// line n2
}
class EBook extends Book { // line n3
public void readBook() { }
// line n4
}
Q. Which option enables the code to compile? | |
A | Replace the code fragment at line n1 with : class Book implements Readable { |
B | At line n2 insert : public abstract void setBookMark(); |
C | Replace the code fragment at line n3 with : abstract class EBook extends Book { |
D | At line n4 insert : public void setBookMark() { } |
정답
D
해설/결과
문제 45
Given the code fragment :
public static void main(String[] args) {
String[] arr = {"A", "B", "C", "D"};
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
if (arr[i].equals("C")) {
continue;
}
System.out.println("Work done");
break;
}
}
Q. What is the result? | |
A | A B C D Work done |
B | A Work done |
C | Compilation fails |
D | A B C Work done |
정답
B
해설/결과
문제 46
Given the code fragment :
String[ ] strs = new String[2];
int idx = 0;
for (String s : strs) {
strs[idx].concat(" element " + idx);
idx++;
}
for (idx = 0; idx < strs.length; idx++) {
System.out.println(strs[idx]);
}
Q. What is the result? | |
A | Null element 0 Null element 1 |
B | A NullPointerException is thrown at runtime. |
C | Null Null |
D | Element 0 Element 1 |
정답
B
해설/결과
- strs[idx].concat("element" + idx); 부분에서 NullPointerException 예외가 발생한다.
- strs[0]가 null이기 때문.
문제 47
Given the code fragment :
if (aVar++ < 10) {
System.out.println(aVar + " Hello World!");
} else {
System.out.println(aVar + " Hello Universe!");
}
Q. What is the result if the integer aVar is 9? | |
A | Hello Universe! |
B | Compilation fails. |
C | 10 Hello World! |
D | Hello World! |
정답
C
해설/결과
문제 48
Given :
public class Test {
public static void main(String[] args) {
if (args[0].equals("Hello") ? false : true) {
System.out.print("Success");
} else {
System.out.println("Failure");
}
}
}
And given the commands :
javac Test.java
java Test Hello
Q. What is the result? | |
A | Failure |
B | Success |
C | An exception is thrown at runtime |
D | Compilation fails. |
정답
A
해설/결과
- args[0].equals("Hello") 의 결과는 true이다. 하지만 삼항 연산자의 조건에 의하여 if의 매개변수는 false가 되게 된다. 따라서 "Failure"가 출력되게 된다.
문제 49
Given :
public class MainTest {
public static void main(int[] args) {
System.out.println("int main " + args[0]);
}
public static void main(Object[] args) {
System.out.println("Object main " + args[0]);
}
public static void main(String[] args) {
System.out.println("String main " + args[0]);
}
}
And commands :
javac MainTest.java
java MainTest 1 2 3
Q. What is the result? |
|
A | int main 1 |
B | Compilation fails |
C | Object main 1 |
D | String main 1 |
E | An exception is thrown at runtime |
정답
D
해설/결과
- 메인 메서드가 과부하된(Overloaded) 상태이다.
- JVM은 오직 정적(Static)이며 1개의 String 형 배열을 받는 메인 메서드만 찾는다.
- 따라서 "String main" 이 출력되게 된다.
문제 50
Given the following class declarations :
public abstract class Animal {}
public interface Hunter {}
public class Cat extends Animal implements Hunter {}
public class Tiger extends Cat {}
Q. Which answer fails to compile? | |
A | ArrayList<Animal> myList = new ArrayList<>(); myList.add(new Tiger()); |
B | ArrayList<Hunter> myList = new ArrayList<>(); myList.add(new Cat()); |
C | ArrayList<Hunter> myList = new ArrayList<>(); myList.add(new Tiger()); |
D | ArrayList<Tiger> myList = new ArrayList<>(); myList.add(new Cat()); |
E | ArrayList<Animal> myList = new ArrayList<>(); myList.add(new Cat()); |
정답
D
해설/결과
- 상속 순서 : Animal -> Hunter -> Cat -> Tiger.
- Tiger 클래스는 Cat 클래스의 서브 클래스이기 때문에 Cat 클래스의 객체를 생성할 수 없다.
728x90
그리드형(광고전용)
'Certificate > OCAJP' 카테고리의 다른 글
[1Z0-808][OCAJP] Dump 문제 81~90 (0) | 2022.01.13 |
---|---|
[1Z0-808][OCAJP] Dump 문제 71~80 (0) | 2022.01.11 |
[1Z0-808][OCAJP] Dump 문제 61~70 (0) | 2022.01.09 |
[1Z0-808][OCAJP] Dump 문제 51~60 (0) | 2022.01.07 |
[1Z0-808][OCAJP] Dump 문제 31~40 (0) | 2022.01.04 |
[1Z0-808][OCAJP] Dump 문제 21~30 (0) | 2022.01.02 |
[1Z0-808][OCAJP] Dump 문제 11~20 (0) | 2022.01.02 |
[1Z0-808][OCAJP] Dump 문제 1~10 (2) | 2021.12.31 |