내멋대로 정리하자면, 굳이 한 번만 쓰고 버릴 클래스인데 그 많고 많은 여러 클래스중에 굳이 또 하나의 클래스를 새로 정의하여 늘릴 필요가 없다는 것이다.
그냥 한 번 사용하고 버리는 클래스인 것이다.
부모클래스 [필드|변수] = new 부모클래스(매개값, ... ) {
};
public class Anonymous {
//★★방법 1 : 필드에 익명자식 객체를 생성
Insect spider1 = new Insect(){
String name = "무당거미";
//거미줄을 치다.
void cobweb(){
System.out.println("사각형으로 거미줄을 친다.");
}
@Override
void attack() {
System.out.println(name + " 독을 발사한다.");
}
};
//★★방법2 : 로컬변수의 초기값으로 대입
void method1(){
Insect spider2 = new Insect(){
String name = "늑대거미";
//거미줄을 치다.
void cobweb(){
System.out.println("육각형으로 거미줄을 친다.");
}
@Override
void attack() {
System.out.println(name + " 앞니로 문다.");
}
};
//로컬변수이기 때문에 메서드에서 바로 사용
spider2.attack();
}
//★★방법3 : 익명객체 매개변수로 대입
void method2(Insect spider){
spider.attack();
}
}