在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