匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
匿名类的目的是在某个地方需要特殊的实现,因此在该处编写其实现,并获取它的实例,调用它的方法。不要在匿名内部类编写其他的方法,是不可见的。
语法是: var 名字=new {字段赋值};
public class TestAnonymousClass{
public static void main(String args[]){
TestAnonymousClass testAnonymousClass=new TestAnonymousClass();
testAnonymousClass.show();
}
//在这个方法中构造了一个匿名内部类
private void show(){
Out anony=new Out(){ // 获取匿名内部类实例
void show(){ //重写父类的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anony.show();// 调用其方法
}
}
// 已有类Out;匿名内部类通过重写其方法获得另外的实现
class Out{
void show(){
System.out.println("this is Out showing.");
} [1]
}
1.var类型的值必须是局部变量或静态变量
2.var变量在声明之前必须被初始化
3.变量的值不能为null(这样编译器就不能判断类型了)
4.var变量不能为一个方法或方法组
5.不能用来声明参数类型