더북(TheBook)

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 표현식에서 ()는 생성 인수를 나타낸다. 따라서 익명 클래스의 기본 생성자가 호출된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.