嚣张的巡山夫 2017-03-07 05:30 采纳率: 80%
浏览 1387
已采纳

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条回答

  • 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创建。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100