📜  Java静态嵌套类(1)

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

Java静态嵌套类

在Java中,静态嵌套类是指一个类的定义在另一个类中,且该嵌套类被声明为静态的。它可以访问其外围类的所有静态变量和静态方法,但不能直接访问其外围类的非静态成员或方法。静态嵌套类也可以定义在接口中。

使用场景

静态嵌套类最常见的用法是作为外围类的辅助类,和外围类的关系密切,但是不需要访问外围类的非静态成员或方法。它使用 private 访问修饰符来防止其他类访问它,并可以在外围类中通过调用私有的构造函数来创建它的实例。

代码示例

以下示例演示了静态嵌套类的基本用法,其中 Outer 是外围类,Nested 是静态嵌套类:

public class Outer {
    private static int outerStaticVariable = 1;
    private int outerInstanceVariable = 2;

    private static class Nested {
        public void print() {
            System.out.println("outerStaticVariable = " + outerStaticVariable);
            // 编译错误 - 静态嵌套类不能访问非静态变量或方法
            // System.out.println("outerInstanceVariable = " + outerInstanceVariable);
        }
    }

    public static void main(String[] args) {
        Outer.Nested nested = new Outer.Nested();
        nested.print();
    }
}

输出:

outerStaticVariable = 1

在上面的示例中,我们可以看到嵌套类 Nested 可以访问外围类 Outer 的静态成员变量 outerStaticVariable,但不能访问非静态成员变量 outerInstanceVariable

总结

静态嵌套类是Java中的一个有用特性,能够帮助我们组织代码和提高代码的可读性。它可以访问其外围类的所有静态变量和静态方法,但不能直接访问其外围类的非静态成员或方法。经常用作外围类的辅助类。