Question 16 : 내부클래스

Click the Exhibit button.
10. interface Foo {
11.      int bar();
12. }
13.
14. public class Beta {
15.
16.      class A implements Foo {
17.           public int bar() { return 1; }
18.      }
19.
20.      public int fubar( Foo foo) { return foo.bar(); }
21.
22.      public void testFoo() {
23.
24.           class A implements Foo {
25.                public int bar() { return 2; }
26.           }
27.
28.           System.out.println( fubar( new A()));
29.      }
30.
31.      public static void main( String[] argv) {
32.           new Beta().testFoo();
33.      }
34. }

Which three statements are true? (Choose three.)

A. Compilation fails.
B. The code compiles and the output is 2.
C. If lines 16, 17 and 18 were removed, compilation would fail.
D. If lines 24, 25 and 26 were removed, compilation would fail.
E. If lines 16, 17 and 18 were removed, the code would compile and the output would be 2.
F. If lines 24, 25 and 26 were removed, the code would compile and the output would be 1.


[HeadFirst Java - p.410]
# 내부클래스에서는 외부클래스의 모든 메소드와 변수를 사용할 수 있습니다. 심지어 private로 지정된 메소드와 클래스도 전부 쓸 수 있습니다. 내부클래스에서는 그런 외부클래스의 변수와 메소드도 모두 내부클래스 안에서 선언한 것처럼 사용하면 됩니다.
# 간단한 내부클래스 (내부클래스에서 외부클래스 변수를 사용하는 방법)
     class MyOuterClass {
          private int x;
          class MyInnerClass {
               void go() { x = 42; }
          }
     }


Answer: BEF
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q018. 인터페이스  (0) 2008.04.13
Q017. import static  (0) 2008.04.11
Q015. 무명클래스의 형태  (0) 2008.04.04
Q014. 열거형  (0) 2008.04.03
Q013. import static  (0) 2008.04.03

+ Recent posts