静态内部类(静态嵌套类或嵌套类)

1、静态嵌套类

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化

(1)静态嵌套类不是其外部类的真正成员,它与外部类级别相同

(2)静态嵌套类不能直接引用其外部类中的实例变量或方法

(3)实例创建方式:

OuterClass.StaticNestedClass nestedObject =new OuterClass.StaticNestedClass();

(4)举例

public class StaticInnerClass {
    public static class InnerClass{
        private String string="早上好";
        public  void say(){
            System.out.println(string);
        }
    }

    public void say(){
        System.out.println("你好");
    }

    public static void main(String[] args) {
        InnerClass InnerClass= new StaticInnerClass.InnerClass();
        InnerClass.say();
        StaticInnerClass staticInnerClass=new StaticInnerClass();
        staticInnerClass.say();
    }
}

2、内部类(成员内部类)

创建Plants内部类,外部类为Biology:

class  Biology{
    public int age;
    public String name;

    public class Plants {
        public String colour;

        public Plants(int a, String n, String c) {
            age = a;// 外部类的成员变量
            name = n;
            colour = c;// 内部类的成员变量
        }

        public void display() {
            System.out.println("植物的名字是:" + name + "
" + "颜色为:" + colour);
        }
    }
}

测试:

public class Test {
    public static void main(String[] args) {

Biology.Plants plants = new Biology().new Plants(1, "蒲公英", "黄色");// 内部类的访问

 plants.display(); } }

 可以看出,内部类的实例化需要依赖于外部类实例被实例化

原文地址:https://www.cnblogs.com/zhai1997/p/12723898.html