java关于如何访问内部类的问题

问题描述:
一、学习了内部类,我自己总结了一些规律,想请教大家是不是正确的(最好有所补充):
1、如果想访问没有static修饰的内部类,先要访问其外部类(内部类在外部类里),再由外部类通过方法(或者别的办法)去访问内部类。
2、而如果内部类在外部类的方法里,要先访问外部类,再通过访问方法来访问内部类。
3、总的来说就是要访问内部类要先访问其外面的类或者方法。
二、首先假设有外部类A包含内部类B(不在方法中)。
当内部类被static修饰后,可以用如下方法访问内部类:
A.B b = new A.B();
如果没有static修饰则要用如下方法:
A a = new A() ;

A.B b = a.new b() ;
第一个方法是如何访问内部类的(我知道是规定的,但我想知道究竟是如何实现的)?难道是用static修饰后,类B变成了类A的一部分(就好像静态方法一样?),所以可以直接实例化内部类B(static修饰的内部类B可以看作外部类)?顺带一问:用static修饰的内部类为什么可以看作外部类?
问题有点多,大家清楚哪个就说哪个。
希望大家不吝赐教。

1个回答

参考: java中的Static class http://www.cnblogs.com/kissazi2/p/3971065.html
A.B b = new A.B(); 静态B的实例不需要A的实例,所以可以直接创建。
A a = new A(); A.B b = a.new b() ; 非几条B必须依赖A的实例,所以要先A后B创建。

Tiger_Zhao
Tiger_Zhao 更正:非几条B=>非静态B
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问