嚣张的巡山夫 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创建。

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

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料