在 Java 中,静态类和非静态内部类之间的区别是什么?
以下列出内部类和静态内部类之间的显著差异。
访问外部类的成员
静态内部类可以直接访问外部类的静态成员。但是,要访问外部类的实例成员,你需要实例化外部类。
示例
public class Outer {
int num = 234;
static int data = 300;
public static class Inner{
public static void main(String args[]){
Outer obj = new Outer();
System.out.println(obj.num);
System.out.println(data);
}
}
}输出
234 300
非内部类可以直接访问它外部类的成员(既包括实例成员,也包括静态成员),无需实例化。
示例
public class Outer2 {
int num = 234;
static int data =300;
public class Inner{
public void main(){
System.out.println(num);
System.out.println(data);
}
}
public static void main(String args[]){
new Outer2().new Inner().main();
}
}输出
234 300
拥有内部类中的静态成员
不能把非静态内部类中的成员设为静态。只有顶层类和静态内部类才允许静态方法。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP