静态内部类又可以说是静态嵌套的,它知识藏在外部类里面的外部类。
成员内部类就相当于一个成员函数的定位。
它们之间又有什么访问权限呢?
成员内部类和外部类:因为成员内部类就相当于一个成员函数一样,所以成员内部类可以直接访问外部类的所有成员。
;外部类要访问成员内部类就需要实例化它。这很容易理解。
需要注意的是:成员内部类不能访问外部类的临时变量。这是为什么呢?因为,成员变量在执行完相应语句就结束了生命,而内部类被构造出来后,再被访 问,很可能这个临时变量已经结束生命了。因此不允许这样访问。
静态内部类和外部类:刚才说了,静态内部类就是个寄居外部类,就好像卧底一样,它带着静态关键字,在类加载时它就跟着加载了。看着就像 外部类的静态成员一样的效果。因此,它的内部不能直接使用外部类的非静态成员。它是卧底嘛,所以它还可以访问外部类的私有成员。
外部访问成员内部类:成员内部类是成员,成员必须在对象基础上才行。因此,要访问成员内部类必须要有外部类引用,这也是为什么成员内部类中不能有静态成员的原因。因为 没有外部类的引用,根本没法找到它并加载。
外部访问静态内部类:直接用 new 外部类.内部类(),就可以。