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

Posted zhai1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态内部类(静态嵌套类或嵌套类)相关的知识,希望对你有一定的参考价值。

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(); } }

技术图片

 

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

 

以上是关于静态内部类(静态嵌套类或嵌套类)的主要内容,如果未能解决你的问题,请参考以下文章

Java:静态与内部类[重复]

30根据官方教程详解嵌套类内部类静态嵌套类局部类匿名类 ...

划重点!!!面试归来我重新总结了Java嵌套类

Java嵌套类,内部类和外部类

Java内部类和静态嵌套类

静态类和内部类的区别是啥