1.静态内部类可以有静态变量和方法,非静态内部类只拥有非静态变量和方法
2.静态内部类只可以访问外部类的静态方法和变量,非静态内部类可以访问外部类的所有成员
3.实例化对象的方法不同
实例化非静态内部类对象
通过外部类对象来实例化
OuterClass outer=new OuterClass();
OuterClass.InnerClass inner=outer.new InnerClass();
实例化静态内部类对象
不依赖外部类对象
OuterClass.InnerStatciClass inner=new OuterClass.InnerStaticClass();
4.调用方法和成员的方式不同
非静态
内部类对象.方法/变量
静态
外部类,内部类.方法/变量(不用生成内部类对象)
新闻热点
疑难解答