问答详情
源自:7-8 Java 中的方法内部类

各位大佬,请问内部类方法不能同时调用同名的内部类变量和外部类变量吗?

各位大佬,请问内部类方法不能同时调用同名的内部类变量和外部类变量吗?


https://img1.mukewang.com/5ce364450001fce607480376.jpg

提问者:慕婉清8375384 2019-05-21 10:39

个回答

  • 慕慕007
    2019-05-24 16:10:37
    已采纳

    你截图的“访问外部类的变量b” 其实这里它是方法中的变量,可以直接通过变量名访问的。(内部类定义在该方法中的)

    HelloTest.this.b这个是访问外部类的非静态变量用的,假如你在HelloTest下面定义了一个非静态变量int b= 5;这个时候你的程序就对了

  • weixin_慕婉清7222021
    2020-06-12 12:23:05

    我前面那个搞错了,楼主为什么你没有调用外部类show()方法?

  • weixin_慕婉清7222021
    2020-06-12 11:31:10

    为什么我觉得内部类调用方法错了呢?不应该是先调用外部类方法再内部类方法嘛?求解


  • 慕码人7051976
    2019-11-21 08:55:05

    大哥 我也遇到这个问题了,。。。  这些评论我一个都看不懂 请问解决了吗

  • 若尘灬
    2019-08-04 21:18:01

    你使用new HelloTest().b试试看,是否可以调用

  • 慕虎5108534
    2019-06-26 11:31:54

    直接HelloTest.b 就可以调用了吧

  • 慕娘2217437
    2019-06-01 19:56:55

    我觉得上面这些人都是在一本正经的瞎说,对自己说出来的答案有验证过吗 ,在这边误人子弟.我是写js的,在学习到这一章节的时候也在考虑方法内部类里面同名的变量怎么取值这个问题.

    首先内部类中的b取值肯定是就近原则,如果出现同名变量,这种取方法里面的变量是不符合规范的,方法不是对象,不能通过.b这种方式取,你若想取到方法中的值,那只能是方法执行有return b,才能取值到这个值.但是真要这么做会导致内存溢出.show方法被循环执行.

  • 慕勒9509760
    2019-05-21 22:55:07

    可以调用啊,调用的时候进行区分就可以