Java中的静态内部类与非静态内部类的区别

1.使用限制。
非静态内部类中,不能够定义静态成员变量与静态成员方法。
非静态内部类对象可以随意的访问外部类的成员变量与方法,即使成员变量被定义为private,也是可以访问的。
静态内部类对象只可以访问外部类中的静态成员变量与方法。
2.创建。

public class A{
  public static class B{
  }
  public class C{
  }
}

上述代码中,A有两个内部类,一个是静态内部类B,一个是非静态内部类C。
创建B的对象:

A.B b = new A.B(); 

而创建C的对象时,需要引用外部类对象,即:

A a = new A(); 
A.C c = a.new C();

你可能感兴趣的:(java)