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
内部类中有静态成员
您不能使非静态内部类static的成员。仅在顶级类和静态内部类中允许使用静态方法。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西