在Java中,静态类的概念是在内部类的概念下引入的,它们是专门为 类 中的一些微妙功能而设计的。

Java 静态类

Java 中的静态类仅允许在其他类下定义的内部类,因为不允许使用静态外部类,这意味着我们不能在外部类中使用 static 关键字。

静态类是与Java中其他内部类的定义相同,只是在其名称前面添加了static关键字。这些类具有一些独特的特征,使它们不同于其他非静态内部类。

Java 静态类的特征

以下是 Java 中静态类的特征:

  • 静态类不需要创建外部包含类的实例来创建自己的实例。

  • 静态类只有在本质上是静态的情况下才能访问外部包含类的成员(变量/方法)。这意味着静态嵌套类无法访问外部类的实例变量和方法。

Java 静态类的语法

静态嵌套类的语法如下 

class MyOuter {
   static class Nested_Demo {
   }
} 

实例化静态嵌套类与实例化一个内部类。以下程序展示了如何在多种情况下使用静态嵌套类。

Java 静态类示例

在这个示例中,我们创建了一个类 Outer 和一个内部静态类作为其中的 NestedDemo。在 main() 方法中,我们直接使用静态类的静态方法,没有任何引用,因为 main 是外部类的一部分。

package com.yxjc123;

public class Outer {
   static class NestedDemo {
      public static void print() {
         System.out.println("This is my nested class");
      }
   }
   
   public static void main(String args[]) {
      NestedDemo.print();
   }
} 

如果编译并执行上述程序,您将得到以下结果

输出

This is my nested class 

Java 静态类:更多示例

示例 1

在此示例中,我们在其中创建了一个 Outer 类和一个内部静态类 NestedDemo。由于 main 方法位于不同的类中,因此我们使用外部类访问静态内部类。

package com.yxjc123;

public class Tester {
   public static void main(String[] arguments) {
	   Outer.NestedDemo.print();
   }
}

class Outer {
   static class NestedDemo {
      public static void print() {
         System.out.println("This is my nested class");
      }
   }
} 

如果编译并执行上述程序,您将得到以下结果 

输出

This is my nested class 

示例 2

在此示例中,我们在其中创建了一个 Outer 类和一个内部静态类 NestedDemo。现在,由于静态类有实例方法,而 main 方法位于不同的类中,因此我们使用外部类对象访问静态内部类。

package com.yxjc123;

public class Tester {
   public static void main(String[] arguments) {
	   new Outer.NestedDemo().print();
   }
}

class Outer {
   static class NestedDemo {
      public void print() {
         System.out.println("This is my nested class");
      }
   }
} 

如果编译并执行上述程序,您将得到以下结果结果 

输出

This is my nested class