Question 15 : 무명클래스의 형태

Given:
10. interface Foo { int bar(); }
11. public class Sprite {
12.      public int fubar( Foo foo) { return foo.bar(); }
13.      public void testFoo() {
14.           fubar(
15.                // insert code here
16.           );
17.      }
18. }

Which code, inserted at line 15, allows the class Sprite to compile?

A. Foo { public int bar() { return 1; } }
B. new Foo { public int bar() { return 1; } }
C. new Foo() { public int bar(){return 1; } }
D. new class Foo { public int bar() { return 1; } }


[Internet]
http://blog.naver.com/caoticc?Redirect=Log&logNo=140045230831
# 익명클래스/무명클래스 (anonymous class)
     - 클래스 또는 인터페이스에 대한 객체를 생성하면서 바로 클래스 또는 인터페이스(내용)를 정의하는 클래스
     - 다시말해서, new 수식이 있는 곳에서 바로 클래스 또는 인터페이스를 정의하는 것
# 무명클래스의 특징
     - 단순한 클래스 또는 인터페이스를 정의하여 사용할 때, 여러 곳에서 사용하는 것이 아니고 단 한 번만 정의하여 사용할 경우 주로 사용
     - 주로 클래스 또는 인터페이스를 구현하여 바로 사용하고자 할 때 이용
# 주의할 점은, 무명클래스는 new 수식의 연장이므로 끝에 꼭 세미콜론(;)을 붙여주어야 한다.
# 예제
     class AnonymousClass {
          public void print() { System.out.print("클래스1"); }
     }
     public class AnonymousExample {
          public static void methodA (AnonymousClass obj) { obj.print(); }
     }
     public static void main(String[] args) {
          methodA (
               new AnonymousClass() {
                    public void print() { System.out.print("클래스2"); }
               });
          }
     }
# 결과 출력
     - 클래스2


Answer: C
반응형

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

Q017. import static  (0) 2008.04.11
Q016. 내부클래스  (0) 2008.04.04
Q014. 열거형  (0) 2008.04.03
Q013. import static  (0) 2008.04.03
Q012. 변수의 적용 범위  (0) 2008.04.01

+ Recent posts