OCJP (1Z0-851 / 2012-08-28 / Exam A) - 51 번
관련 이론 및 문법
(import 참고)
http://kkikkodev.tistory.com/181
문제 의도
GrizzlyBear.java 와 Salmon.java 가 있다고 가정합니다. 두 클래스들은 모두 그들의 패키지에 올바른 디렉토리에 존재하고, Mammal 클래스는 올바르게 findSalmon() 메소드를 정의하고 있다고 가정한다면, 어떤 코드가 바뀌어야 컴파일이 정상적으로 될지 고르는 문제입니다.
답안
B
풀이 방법
이 문제는, import 에 대한 문제입니다. GrizzlyBear 클래스는 Bear 클래스를 상속하면서 hunt 라는 메소드를 가지고 있습니다. 여기서는, Salmon 객체를 findSalmon 이라는 메소드 호출을 통해서 받아옵니다. 그 받아온 객체의 consume 메소드를 호출하고 있습니다. Salmon 클래스는 Fish 클래스를 상속하고, consume 메소드를 가지고 있습니다.
Mammal 클래스는 animals.mammals 패키지 안에 정의되어 있을 것으로 예상됩니다. 왜냐하면, 5 번 라인에서, findSalmon 을 따로 import 문 없이 바로 호출하고 있기 때문입니다. (같은 패키지 내에 존재해서) 그리고 얻은 Salmon 객체의 consume 메소드를 호출하기 위해서는, animals.fish 패키지의 Salmon 클래스를 import 해야 합니다. 따라서, 패키지 전체를 import 하는 방법인, import animals.fish.*; 혹은 Salmon 클래스만 import 하는 방법인, import animals.fish.Salmon; 문장을 GrizzlyBear.java 의 2 번 라인에 추가하여야 합니다. 따라서 답안은 B 가 됩니다.