java中的内部类和匿名内部类
内部类:顾名思义,内部类即定义在类内部的类。 如:class A{ class B{ } };
当我们编译A的时候,会生成A.class文件和A¥B.class文件。
当我们要生成一个B的对象,必须先生成外部类对象。我们要使用如下的方法:A a=new A(); A.B. b= new A().new B();
内部类可以随意使用外部类当中定义的成员变量。
匿名内部类:没用名字的内部类。一般写在参数里。
A.class:
interface A{
doSomething();
}
//(接口不能直接生成对象,而需要通过implement来实现接口)
B.class:
class B{
fun(A a){
System.out.println("B类的函数");
a.doSomething();
}
}
Test.class:
class Test{
public static void main(String args []){
B b=new B();
b.fun(new A(){
public void doSomething(){
System.out.printkn("这里是匿名内部类");
}//A是接口不能直接实现,所以之后我们直接跟一个匿名内部类来实现A接口生成一个对象
});
}
}
浙公网安备 33010602011771号