반응형
ch7-51 익명 클래스 (anonymous class)
익명 이름이 없는 클래스 / 일회용 클래스 / 클래스의 정의와 생성을 동시에
이름이 없는 클래스이기 때문에 조상 이름을 대신 사용한다.
MyClass mc = new MyClass() ; (x)
new Object() {}
new 조상이름을 쓰던가, 인터페이스 이름을 쓰던가
클래스 생성과 정의를 하나로 합친 것
조상의 이름을 사용한다.
"이름이 없고, 생성과 정의를 동시에 한다, 조상 또는 인터페이스의 의 이름을 사용함"
내부 클래스이기 때문에, 외부 클래스의 이름이 따라온다.
AWT (Java의 윈도우 프로그래밍)
대부분 클래스 정의를 하고, 객체 생성을 위에서 한다.
대부분 클래스가 일회성이다. 한 번 쓰고 사용하지 않음.
내부에서 주로 사용한다. 일회성인데, 클래스를 만드는 것보다 익명 클래스를 사용하는 것이 낫다.
이름을 지우고 조상이름을 남긴다. new ActionListener(); 괄호 안에다가 저 내용을 집어 넣는다.
조상 또는 인터페이스 이름을 사용.
필요할 때 만들어보면 되는 정도이다.
- 실습
아래 코드를 익명 클래스로 변경
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 occured! ");
}
}
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 occured! ");
}
});
}
}
반응형
'자바의정석' 카테고리의 다른 글
자바의 정석 7장 연습문제 (1~19) (0) | 2022.03.31 |
---|---|
[자바의 정석 - 기초편] ch8-1~3 프로그램오류. 예외 클래스의 계층구조 (0) | 2022.03.24 |
[자바의 정석 - 기초편] ch7-45~50 내부클래스의 제어자와 접근성 (0) | 2022.03.24 |
[자바의 정석 - 기초편] ch7-42~44 내부클래스의 종류, 특징, 선언 (0) | 2022.03.24 |
[자바의 정석 - 기초편] 7-40,41 디폴트 메서드와 static메서드에 대한 강의입니다. 객체지향개념의 마지막 강의 (0) | 2022.03.23 |