반응형
익명 클래스 (anonymous class)
익명 클래스란?
- 익명 클래스(anonymous class)란 다른 내부 클래스와는 달리 이름을 가지지 않는 클래스를 의미
- 익명 클래스는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성하는 일회용 클래스
new 조상클래스이름(){
// 멤버 선언
}
// 혹은
new 구현인터페이스이름() {
// 멤버 선언
}
- 자기 이름을 못 쓰고 조상클래스의 이름을 쓴다.
- 혹은 interface를 사용한다.
- 익명클래스라서 클래스 이름을 사용하지 못한다.
// Ex1) Object 익명클래스인 경우
class Ex7_17{
Object iv = new Object(){ void method(){ …. } }; // 익명 클래스
static Object cv = new Object(){ void method(){ …. } }; // 익명 클래스
void myMethod(){
Object lv = new Object(){ void method(){ …. } }; // 익명 클래스
}
}
// Ex2) AWT( 자바의 윈도우 프로그램 ) 의 경우 (익명클래스가 아닌경우)
import java.awt.*;
import java.awt.event.*;
class Ex7_18 {
public static void main(String[] args){
Button b = new Button("Start");
b.addActionListener(new EventHandler());
// ②객체 생성
}
}
// ①클래스 정의
class EventHandler implements ActionListener{
public void actionPerformed( ActionEvent e ){
System.out.println("ActionEvent occurred!!!");
}
}
대부분 Ex2와 같은 경우에는 클래스를 1회성으로 사용되기 때문에 따로 클래스 정의할 필요가 없고 익명클래스화 시켜서 사용한다.
import java.awt.*;
import java.awt.event.*;
class Ex7_18 {
public static void main(String[] args){
Button b = new Button("Start");
// 조상 또는 인터페이스 이름을 입력한뒤 필요한 처리를 입력한다
// 클래스의 정의와 객체 생성을 동시에 처리한다
b.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent e ){
System.out.println("ActionEvent occurred!!!");
}
});
}
}
[자바의 정석 - 기초편] ch7-51,52 익명 클래스
반응형
'프로그래밍 공부 > Java' 카테고리의 다른 글
Java 기초 - 컬렉션 프레임워크 (3) [Stack과 Queue] (0) | 2022.05.04 |
---|---|
Java 기초 - 컬렉션 프레임워크 (2) [List 컬렉션 클래스] (0) | 2022.05.04 |
Java 기초 - 컬렉션 프레임워크 (1) [컬렉션 프레임워크(collection framework)] (0) | 2022.05.04 |
Java 기초 - 람다식 표현 (0) | 2022.05.04 |
Java 기초 - 이너 클래스 (0) | 2022.05.04 |