글
관련 이론 및 문법
(this VS super 참고)
http://kkikkodev.tistory.com/95
문제 의도
주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.
답안
C
풀이 방법
소스코드를 살펴보면, 1 번 라인에 X 클래스가 정의되어 있는 것을 알 수 있습니다. 그 안에는, 2 라인에 1 을 출력하는 기본 생성자와 3 라인에 2 를 출력하는 매개변수 생성자 (매개변수는 int 형 x) 가 있습니다. 7 번 라인에 Y 클래스가 정의되어 있고, X 클래스를 상속하고 있습니다. 그 안에는, 8 라인에, 3 을 출력하는 기본 생성자와, 9 라인에, 4 를 출력하는 매개변수 생성자 (매개변수는 int 형 y) 가 있고, main 메소드도 있습니다.
실행을 하면, 먼저, 12 라인의 main 메소드가 호출되고, new Y(5); 문장을 통해서 Y 의 매개변수 생성자를 호출합니다. 9 번 라인의 매개변수 생성자가 호출되고, 10 번 라인의 this(); 가 호출되어, 자기 자신의 기본 생성자를 호출합니다. 따라서, 8 번 라인의 기본 생성자가 호출되고, super(6); 문장을 통해서, 부모의 매개변수 생성자를 호출합니다.
3 번 라인의 매개변수 생성자가 호출되고, 4 번 라인의 this(); 문장을 통해 다시, 자기 자신의 기본 생성자를 호출합니다. 2 번 라인의 기본 생성자가 호출되고, 1 을 화면에 출력합니다. 그 다음, 기본 생성자가 종료되어, 이를 호출했었던, 4 번 라인의 this(); 다음 문장으로 돌아가서, 2 를 화면에 출력합니다. 그 다음, X 클래스의 매개변수 생성자가 종료되어, 이를 호출했었던, 8 번 라인의 super(6); 문장 다음으로 돌아가서, 3 을 화면에 출력합니다. 그 다음, Y 클래스의 기본 생성자가 종료되어, 이를 호출했었던, 10 번 라인의 this(); 문장 다음으로 돌아가서, 4 를 화면에 출력합니다. 그리고 Y 클래스의 매개변수 생성자도 종료됩니다.
결국, 1234 가 차례대로 출력된 보기 C 가 답안이 됩니다.
'4.1) OCJP > 1Z0-851 / 2012-08-28' 카테고리의 다른 글
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 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 21 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 20 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 19 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 18 번 (0) | 2015.08.28 |
OCJP (1Z0-851 / 2012-08-28 / Exam B) - 17 번 (0) | 2015.08.28 |
RECENT COMMENT