살아가는 이야기

Java 익명 클래스 본문

컴퓨터, 풀어그림

Java 익명 클래스

우균 2010. 11. 16. 17:33

언제부터인가 Java에 익명 클래스(anonymous class)가 생겼다. 이벤트 리스너(listener)를 등록할 때 자주 사용되는데, 예제 파일을 하나 첨부한다.

import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class HelloFrame extends JFrame {
    public HelloFrame() {
        setTitle("Hello Frame");
        setSize(300,200);
        setLocation(100, 200);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        }
);
    }
    public static void main(String[] args) {
        JFrame f = new HelloFrame();
        f.setVisible(true);
    }
}

익명 클래스를 사용하지 않을 경우에는 파란색 부분에 대한 클래스를 별도로 작성해야 한다. 즉 아래 프로그램처럼 작성해야 한다.

import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class HelloFrame extends JFrame {
    class Terminator extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
    public HelloFrame() {
        setTitle("Hello Frame");
        setSize(300,200);
        setLocation(100, 200);
        addWindowListener(new Terminator());
    }
    public static void main(String[] args) {
        JFrame f = new HelloFrame();
        f.setVisible(true);
    }
}


익명 클래스를 사용해도 소스코드는 딱 한 줄만 줄어들 뿐이지만 Terminator라는 클래스 이름을 만들지 않아도 되니 편리하다고 할 수 있다.

Comments