익명 클래스란?
이름이 없는 클래스
선언후 마지막 세미클론
일회용
내부 기능 override 구현
내부 클래스의 지약클래스의 제한 기능을 동일 적용
익명클래스는 다른 내부클래스와는 달리 이름이 없는 클래스를 의미합니다.
익명클래스의 선언과 객체의 생성을 동시에 하므로 단 한 번만 사용 할 수 있고
오직 하나의 객체만을 생성 할 수 있는 일회용 클래스이다.
실습1)
public class Person {
public void introduce() {
System.out.println("나는 사람입니다.");
}
}
public class Exam01Main {
public static void main(String[] args) {
Person p = new Person();
p.introduce();
//익명클래스
Person p2 = new Person() {
@Override
public void introduce() {
System.out.println("나는 생각하는 사람.");
}
};
p2.introuduce();
}
}
public interface ButtonClickListener {
void click();
}
public class EventMain {
//버튼 클래스
public class Button {
private ButtonClickListener listener;
//setter
public void setListener(ButtonClickListener listener) {
this.listener = listener;
}
public void clik() {
if(this.listener != null) {
this.listener.click();
}
}
}
public ststic void main(String[] args) {
EventMain main = new EvenrMain();
//내부클래스 선언
EventMain.Button button = main.new Button();
ButtonClickListener listener = new ButtonClickListener() {
@Override
publick void click() {
System.out.println("버튼이 눌렸습니다.");
}
};
button.setListener(listener);
button.click();
}
}