관련 이론 및 문법

(import 참고)

http://kkikkodev.tistory.com/181


문제 의도

주어진 2 개의 클래스들이 각각 다른 파일에 정의되어 있다고 할 때, SomeApp 클래스의 5 라인에, 추가하여 BitUtils 클래스의 process 메소드를 호출하는 문장을 고르는 문제입니다.


답안

C


풀이 방법

소스코드를 살펴보면, 크게 2 개의 패키지 (util, app) 로 구성되어 있는 것을 알 수 있습니다. 또한, util 패키지에는 BitUtils 클래스가 정의되어 있고, app 패키지에는, SomeApp 클래스가 정의되어 있는 것을 알 수 있습니다. app 패키지 내의 SomeApp 클래스의 main 메소드에서 5 번 라인에 추가하여, util 패키지의 BitUtils 클래스의 process 메소드를 호출하려면, 2 가지 방법이 있습니다.


먼저, import 를 사용하는 것입니다. (클래스가 다르기 때문에) 예를 들어, app 코드의 2 번 라인에, import static util.BitUtils.*; 이라는 문장이 삽입되었다면, 앞으로 BitUtils 내에 있는 process 를 호출할 때는 패키지명 + 클래스명을 생략해도 된다는 것입니다. 따라서, 그 뒤로 process(bytes); 문으로 해결할 수가 있습니다.


둘째로, import 를 사용하지 않고, 직접 다 표기해서 호출하는 방법입니다.


패키지명.클래스명.메소드명(...); 


의 형태처럼, util.BitUtils.process(bytes); 문을 통해 직접 패키지명과 클래스명을 나열하고 그 뒤에 메소드명을 나열하여 호출을 할 수 있습니다. process 앞에 클래스명을 쓴 이유는, process 메소드가 static 메소드이기 때문입니다.


위의 두 가지 방법 중, 주어진 소스코드에서는 import 문이 없기 때문에, 두 번째 방법을 사용하여 호출하여야 하고, 답안은 C 가 됩니다.


by kkikkodev 2015. 9. 2. 21:31