📜  Java程序来说明静态内部类的使用(1)

📅  最后修改于: 2023-12-03 15:16:37.944000             🧑  作者: Mango

Java静态内部类

Java中可以在类的内部定义类,这样的类被称为内部类。内部类可以分为非静态内部类和静态内部类两种。静态内部类与外部类之间没有特殊的关系, 可以直接通过类名访问静态内部类的成员。本文将着重介绍静态内部类的使用。

静态内部类介绍

静态内部类是在一个类中用static修饰的内部类,它属于外部类的静态成员,可以访问外部类的静态变量和方法。与非静态内部类不同的是,它的实例化不依赖于外部类的实例,因此可以直接创建静态内部类的实例。

在程序员需要封装一个类时,可以使用静态内部类将一个类隐藏在另一个类的内部,减少程序设计的复杂度。

静态内部类示例
public class OuterClass {

    private static String outerStaticString = "Hello World!";

    // 静态内部类
    public static class InnerClass {
        public void printOuterStaticString() {
            System.out.println("Outer Static String: " + outerStaticString);
        }
    }

    public static void main(String[] args) {
        OuterClass.InnerClass innerObject = new OuterClass.InnerClass();
        innerObject.printOuterStaticString(); // 输出 Outer Static String: Hello World!
    }
}

可以看到,我们定义了一个外部类 OuterClass 和一个静态内部类 InnerClass。静态内部类中,我们定义了一个方法 printOuterStaticString(),该方法可以访问外部类的静态变量 outerStaticString。

在 Main() 方法中,我们实例化了 InnerClass 类的实例,并调用其中的方法 printOuterStaticString()。可以看到程序输出了 "Outer Static String: Hello World!" 的结果。

总结

静态内部类是 Java 内部类的一种,它具有一些独特的特性,如在静态内部类中无法访问外部类的非静态成员等。在程序设计中,可以使用静态内部类将一个类隐藏在另一个类的内部,从而简化程序结构和编写。

需要注意的是,不管是非静态内部类还是静态内部类,都不能被 public、private、protected 等关键字修饰,只能被 static 修饰。