글
관련 이론 및 문법
(익명 클래스 (anonymous class) 참고)
http://kkikkodev.tistory.com/147
문제 의도
주어진 소스코드의 15 라인에 삽입하여, Sprite 클래스를 정상적으로 컴파일되게 하는 보기를 고르는 문제입니다.
답안
C
풀이 방법
소스코드를 살펴보면, 10 번 라인에, Foo 인터페이스가 정의 되어 있고, 그 안에, bar 라는 추상 메소드가 있습니다. 그리고, 11 번 라인에 Sprite 클래스가 정의되어 있고, 12 번 라인에, fubar 메소드가 있는데, 매개변수가 Foo 형 foo 변수이고, 그 안에서는 foo.bar() 문을 통해, foo 의 bar 메소드를 호출하고 있습니다. 마지막으로, 13 라인에는 testFoo 메소드가 정의되어 있고, 그 안에 14 ~ 16 라인에서는 fubar(); 문을 통해 12 라인의 fubar 메소드를 호출하고 있는 것을 알 수 있습니다.
fubar 메소드의 매개변수가 Foo 형 변수이기 때문에, Foo 형 객체를 생성하여 매개변수로 넘겨주어야 하는데, 인터페이스는 기본적으로 new 를 통하여 객체를 생성할 수 없습니다. 하지만, 익명 클래스를 활용하면, 객체화하는 것이 가능합니다. 따라서, new Foo() 를 하면서, 동시에 추상 메소드의 정의도 해주어야 합니다.
결국,
new Foo(){
public int bar(){
return 1;
}
};
의 형태로 익명 클래스 객체를 만들고 이를 15 라인의 fubar 메소드의 매개변수로 넘겨주어야 합니다.
따라서, 답안은 C 가 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 33 번 (0) | 2015.09.02 |
|---|---|
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 32 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 31 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 30 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 29 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 27 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 26 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 25 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 24 번 (0) | 2015.09.02 |
| OCJP (1Z0-851 / 2012-08-28 / Exam B) - 23 번 (0) | 2015.08.28 |
RECENT COMMENT