温馨提示×

java静态内部类怎么使用

小亿
81
2023-10-24 00:24:07
栏目: 编程语言

静态内部类是指在外部类中使用static关键字修饰的内部类。使用静态内部类的语法格式为:

public class OuterClass {
    // 外部类成员变量和方法

    public static class InnerClass {
        // 静态内部类成员变量和方法
    }
}

静态内部类使用的注意事项:

  1. 静态内部类可以直接访问外部类的静态变量和静态方法,但不能直接访问外部类的非静态变量和非静态方法。
  2. 静态内部类可以被外部类直接访问,不需要创建外部类的对象。
  3. 静态内部类可以有自己的静态变量和静态方法,与外部类的静态变量和静态方法不冲突。
  4. 外部类的对象不能直接访问静态内部类的成员变量和成员方法,需要通过创建静态内部类的对象来访问。

示例代码如下:

public class OuterClass {
    private static int outerStaticVar = 1;
    private int outerVar = 2;

    public void outerMethod() {
        System.out.println("OuterClass outerMethod");
    }

    public static class InnerClass {
        private static int innerStaticVar = 3;
        private int innerVar = 4;

        public void innerMethod() {
            System.out.println("InnerClass innerMethod");
        }

        public static void innerStaticMethod() {
            System.out.println("InnerClass innerStaticMethod");
        }
    }

    public static void main(String[] args) {
        // 直接访问静态内部类的静态变量和静态方法
        System.out.println(InnerClass.innerStaticVar);
        InnerClass.innerStaticMethod();
        
        // 创建静态内部类的对象,并访问其成员变量和成员方法
        InnerClass innerObj = new InnerClass();
        System.out.println(innerObj.innerVar);
        innerObj.innerMethod();
        
        // 外部类的对象不能直接访问静态内部类的成员变量和成员方法
        // System.out.println(innerVar); // 编译错误
        // innerMethod(); // 编译错误
    }
}

以上代码中,静态内部类InnerClass可以直接访问外部类的静态变量outerStaticVar和静态方法outerMethod,并且可以有自己的静态变量innerStaticVar和静态方法innerStaticMethod。外部类的对象不能直接访问静态内部类的成员变量和成员方法,需要通过创建静态内部类的对象来访问。

0