内部类
1、什么是内部类?
内部类:在类的内部又定义了一个新的类。
2、内部类的分类:
静态内部类:类似于静态变量
public class TestInnerClass{
static class Inner1{
}
}
实例内部类:类似于实例变量
public class TestInnerClass{
class Inner1{
}
}
局部内部类:类似于局部变量
public class TestInnerClass{
public void Inner(){
class Inner1{
}
}
}
匿名内部类
匿名内部类是局部内部类的一种。因为这个类没有名字而得名,叫做匿名内部类。
public class TestInnerClass{
public static void main(String[] args) {
Problem p=new Problem();
p.sum(new InnerClass.Method(){//匿名内部类
public int sum(int a, int b) {
return 0;
}
},1,2);
}
}
class InnerClass{
interface Method{
public int sum(int a,int b);
}
}
class Problem{
public void sum(InnerClass.Method m, int a, int b){
int total=m.sum(a,b);
System.out.println(a+b);
}
}
缺点:
1:过于复杂,可读性差。
2:类没有名字,只能调用一次,无法重复使用。