Java教程

Java静态嵌套类

在类内部创建的静态类,即Java中的静态嵌套类。它无法访问非静态数据成员和方法。可以通过外部类名进行访问。
它可以访问外部类(包括私有类)的静态数据成员。 静态嵌套类无法访问非静态(实例)数据成员或方法。

带有实例方法的Java静态嵌套类示例

class TestOuter1{
    static int data=30;
    static class Inner{
        void msg(){
            System.out.println("data is "+data);
        }
    }
    public static void main(String args[]){
        TestOuter1.Inner obj=new TestOuter1.Inner();
        obj.msg();
    }
}
输出:
data is 30
在此示例中,您需要创建静态嵌套类的实例,因为它具有实例方法msg()。但是您不需要创建外部类的对象,因为嵌套类是静态的,并且静态属性,方法或类都可以在没有对象的情况下访问。

由编译器生成的内部类

import java.io.PrintStream;
static class TestOuter1$Inner{
    TestOuter1$Inner(){
    }
    void msg(){
        System.out.println((new StringBuilder()).append("data is ").append(TestOuter1.data).toString());
    }
}

带有静态方法的Java静态嵌套类示例

如果静态嵌套类中包含静态成员,则无需创建静态嵌套类的实例。
class TestOuter2{
    static int data=30;
    static class Inner{
        static void msg(){
            System.out.println("data is "+data);
        }
    }
    public static void main(String args[]){
        TestOuter2.Inner.msg();
    //no need to create the instance of static nested class }
}
输出:
data is 30
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4