问题描述:
一、学习了内部类,我自己总结了一些规律,想请教大家是不是正确的(最好有所补充):
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修饰的内部类为什么可以看作外部类?
问题有点多,大家清楚哪个就说哪个。
希望大家不吝赐教。
java关于如何访问内部类的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Tiger_Zhao 2017-03-07 05:41关注
参考: 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创建。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报