内部类

来源:互联网 发布:信息软件 编辑:程序博客网 时间:2024/06/05 17:48

对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 。

1:非静态内部类,必须有一个外部类的引用才能创建。

2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。

3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。

4:静态内部类,不需要外部类引用就可以直接创建。

5:同时静态的内部类,也不能直接访问外部类的非静态方法。

6:由此可以推测,非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。

为什么使用内部类

这里就会有可以用外围类实现接口,为什么选择内部类的问题。 如果可以通过外部类实现接口来满足需求,则可以这样做。内部类实现接口的可以更轻易的使用到接口的实现,外围类不会再对内部类产生影响