使用内部类的原因
1.可以访问该类定义所在的数据域中的数据,包括私有数据。
2.可以对同包其他类实现隐藏。
1.常规内部类
直接定义在外部类中,可以访问外部类的数据和函数,可被外部类实例化
public class A {
private int num;
public void getName(){
System.out.println("My name is A");
}
B b=new B();
class B{
public void getName(){
A.this.getName();
System.out.println("My name is B");
}
}
}
2.局部内部类
定义在方法中,不用public或private声明,只能访问外部方法的final变量
public class A {
private int num;
public void getName(){
final String name="A";
class B{
public void getName(){
System.out.println(A.this.num);
System.out.println(name);
}
}
}
}
3.静态内部类
类前加static,无法引用到外部类的非静态成员
public class A {
public static int num;
public static class B{
public void getName(){
System.out.println(A.num);
}
}
}
//可以在A实例化前调用B的方法
4.匿名内部类
在只用到类的一个实例 ,类在定义后马上用到,类非常小(SUN推荐是在4行代码以下)这几个条件下使用很合适。