Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java APIs 和框架

Java 类参考

Java 有用资源

Java - 静态类



在 Java 中,静态类的概念是在内部类的概念下引入的,内部类是专门为中某些精细的功能而设计的。

Java 静态类

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

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

Java 静态类的特性

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

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

  • 静态类只能访问外部包含类的成员(变量/方法),前提是这些成员的性质是静态的。这意味着静态嵌套类无法访问外部类的实例变量和方法。

Java 静态类的语法

静态嵌套类的语法如下:

class MyOuter {
   static class Nested_Demo {
   }
}

实例化静态嵌套类与实例化内部类略有不同。下面的程序展示了如何在多种情况下使用静态嵌套类。

Java 静态类的示例

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

package com.tutorialspoint;

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 方法在不同的类中,我们使用 Outer 类访问静态内部类。

package com.tutorialspoint;

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 方法在不同的类中,我们使用 Outer 类对象访问静态内部类。

package com.tutorialspoint;

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
广告