java-内部类的创建

java 创建内部类时离不开他的外围类,除非内部类是嵌套类(即静态内部类),嵌套类中的内部类也是如此 比如:

public class TestStaticiInnerClass {

    private static class InnerA{

        public void f(){

            System.out.println("this is static inner class method");

        }

        public class InnerB{

            public void g(){

                System.out.println("this is InnerB mehtod");

            }

        }

    }

    public static void main(String[] args) {

        InnerA a = new InnerA();

        a.f();

        InnerA.InnerB b = a.new InnerB();

       b.g();

    }

}

1)调用f()方法:

首先InnerA是一个嵌套类(静态内部类)  该嵌套类中有一个内部类InnerB,

由于InnerA是嵌套类 所以调用它里面的非静态方法f()时 需要创建InnerA对象 除非方法f()是静态的

而无需它的外围类TestStaticiInnerClass对象。

2) 调用g()方法:

由于g()方法属于InnerB 而InnerB不是嵌套类,所以调用g()方法需要首先创建InnerB对象

上面说了 InnerB不是嵌套类 而是普通内部类,要创建它的对象必须要知道它的所属外围类 

即:外围类.内部类  引用 = 外围类引用.new 内部类();

另外:普通的内部类中是不能有静态数据和字段的 这点在编译期间就能发现。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容