3.9.2 익명 클래스
앞의 예제에서는 반환 값을 생성할 목적으로 RandomSequence라는 이름을 딱 한 번 사용했다. 이때는 클래스를 익명(anonymous)으로 만들어도 된다.
public static IntSequence randomInts(int low, int high) {
return new IntSequence() {
public int next() { return low + generator.nextInt(high - low + 1); }
public boolean hasNext() { return true; }
}
}
다음 표현식은 인터페이스와 인터페이스의 메서드를 구현하는 클래스를 정의하고, 이 클래스의 하나뿐인 객체를 생성한다.
new interface() { 메서드 구현 }
Note ≣
늘 그러하듯이 new 표현식에서 ()는 생성 인수를 나타낸다. 따라서 익명 클래스의 기본 생성자가 호출된다.