Java静态类
时间:2020-02-23 14:36:52 来源:igfitidea点击:
Java不允许使用顶级静态类,例如,如果我们尝试像下面这样使类成为静态类。
Test.java
static class Test { }
我们得到以下编译错误。
$javac Test.java Test.java:1: error: modifier static not allowed here static class Test { ^ 1 error
Java静态类
那么有可能在Java中有静态类吗?
是的,java支持嵌套类,它们可以是静态的。
这些静态类也称为静态嵌套类。
Java静态嵌套类只能访问外部类的静态成员。
静态嵌套类的行为类似于顶级类,并且仅出于包装方便而嵌套。
静态嵌套类的实例可以如下创建。
OuterClass.StaticNestedClass nestedObj = new OuterClass.StaticNestedClass();
Java静态类示例
让我们看一下Java静态类的示例,看看如何在Java程序中使用它。
package com.theitroad.java.examples; public class OuterClass { private static String name = "OuterClass"; //static nested class static class StaticNestedClass { private int a; public int getA() { return this.a; } public String getName() { return name; } } }
现在,让我们看看如何实例化和使用静态嵌套类。
package com.theitroad.java.examples; public class StaticNestedClassTest { public static void main(String[] args) { //creating instance of static nested class OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass(); //accessing outer class static member System.out.println(nested.getName()); } }
Java静态类文件
Java静态类文件名为OuterClass $StaticClass.class
。
下图显示了我们的示例程序。
Java静态类的好处
我唯一想到的好处就是封装。
如果静态嵌套类仅与外部类一起使用,则我们可以将嵌套类保持为静态,以使它们保持紧密状态。