Java 简明教程
Java - Static Classes
在 Java 中,静态类概念见于 inner classes 的概念,它专门设计用于 class 中一些精细功能。
Java Static Classes
Java 中的静态类仅允许在其他类下定义的内部类,因为不允许静态外部类,这意味着我们不能对外部类使用静态关键字。
静态类与 Java 中的其他内部类定义相同,只是在其名称前面有一个静态关键字。这些类有一些独特的特性,使它们与其他非静态内部类不同。
Features of Java Static Classes
以下是 Java 中静态类的一些特性:
-
静态类不需要创建外部包含类的实例即可创建自己的实例。
-
静态类只能访问外部包含类的成员(变量/方法),如果它们本质上是静态的。这意味着静态嵌套类不能访问外部类的实例变量和方法。
Syntax of Java Static Class
静态嵌套类的语法如下 −
class MyOuter {
static class Nested_Demo {
}
}
实例化静态嵌套类与实例化内部类有点不同。以下程序演示了如何在多种情况下使用静态嵌套类。
Example of Java Static Class
在这个示例中,我们创建了一个类 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();
}
}
如果您编译并执行上述程序,将得到以下结果 −
Output
This is my nested class
Java Static Class: More Examples
Example 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");
}
}
}
如果您编译并执行上述程序,将得到以下结果 −
Output
This is my nested class
Example 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");
}
}
}
如果您编译并执行上述程序,将得到以下结果 −
Output
This is my nested class