静态内部类是定义其外部类的内部和外部类没有成员依赖关系,也就是说静态内部类可以独立创建对象,而不像之前介绍过的成员内部类必须通过外部类对象来创建内部类对象。
静态内部类在定义时加上static关键字,其内部和普通的类一样可以成员变量和方法。需要注意静态内部类与成员内部类不同的是:
成员方法不能真接访问外部类所成员变量和方法,只能访问外部类的静态成员变量和静态方法。
class Outter{
public static int a;
public static void settA(int a){
Outter.a=a;
}
private int b;
public void settB(int b){
this.b=b;
}
public static class Inner{
int c;
public void setC(int c){
this.c=c*a;
//this.c=c+b; 不能访问外部成员变量
}
public void print(){
System.out.println("Outter.a="+a);
System.out.println("Inner object.c="+c);
}
}
}
public class Demo1 {
public static void main(String[] args) {
Outter.Inner in=new Outter.Inner();
Outter.a=10;
in.setC(20);
in.print();
}
}
运行程序,结果如下图所示: