익명 클래스(anonymous class)

0
post-custom-banner

익명 클래스?

: 이름이 없는 일회용 클래스. 정의와 생성을 동시에 함
→ 조상의 이름을 빌려다가 씀

new 조상클래스이름() {
	// 멤버 선언, 클래스 내용
}
 		또는

new 구현 인터페이스이름() {
	// 멤버 선언
}

예시)

class Ex7_17 {
	Object iv = new Object() { void method()} };

→ 컴파일 하면, 파일 이름이 외부클래스$1.class 의 형식으로 나옴. 숫자는 1,2,3 ⋯ 증가함.


AWT(JAVA의 윈도우 프로그래밍)을 작성할 때 아래와 같은 코드를 많이 씀

class Ex7 {
	public static void main(String[] args) {
    	Button b = new Button("Start");
        b.addActionListener(new EventHandler());  // 2. 객체 생성
    }
}

class EventHandler implements ActionListener { // 1. 클래스 정의
	public void actionPerformed(ActionEvent e) {
    	Syetem.out.println("ActionEvent occurred!!");
    }
}

⬇︎ 보통 내부클래스로 1회성으로 사용 → 굳이 클래스로 따로 만들기 싫음 → 익명 클래스로 처리 ⬇︎

b.addActionListener(new ActionListener() { // 조상이름
	public void actionPerformed(ActionEvent e) { // 원래 클래스 내부와 동일
    	System.out.println("ActionEvent occurred!!");
    }
});    

출처

  • 자바의 정석 기초편 : ch 7- 51,52
profile
백엔드를 공부하고 있습니다.
post-custom-banner

0개의 댓글