内部类和匿名内部类
1.什么是内部类
Class A{
int i;
Class B{
int j;
int funB(){
int result=i+j;
}
}
}
编译后:
2.内部类的使用方法
如何生成内部类的对象?
要生成内部类的对象首先要生成外部类的对象
B是A的内部类意味着B可以随意使用A的成员变量和成员函数
但是B不拥有A的成员变量和成员函数
3.匿名内部类的使用方法
interface A{
Public void doSomething();
}
Class B{
Public void fun(A a){
System.out.println("B类的fun函数");
a.doSomething();
}
}
Class Aimpl implements A{
Public void doSomething(){
System.out.println("doSomething");
}
}
Class Test{
Public static void main(String[] args){
Aimpl al = new Aimpl();
A a = al;
B b = new B();
b.fun(a);//正常写法
//匿名内部类
b.fun(new A(){
Public void doSomething(){
System.out.println("匿名内部类");
}
});
}
}
B的fun()这个函数需要A类型的对象作为参数
New A(){
}
new接口指的是要实现这个接口 后面必须跟上实现类