为了账号安全,请及时绑定邮箱和手机立即绑定

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

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


https://img1.sycdn.imooc.com//5ce364450001fce607480376.jpg

正在回答

8 回答

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

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

1 回复 有任何疑惑可以回复我~
#1

慕婉清8375384 提问者

谢谢您的回答,如果我想调int b=2;这个量,应该怎么调呢??
2019-05-24 回复 有任何疑惑可以回复我~
#2

慕慕007 回复 慕婉清8375384 提问者

调用int b =2这个,直接用变量名:b;如果要调用int b =4这个,可以用内部类对象 si.b调用
2019-05-24 回复 有任何疑惑可以回复我~
#3

慕婉清8375384 提问者 回复 慕慕007

虽然我不太懂,不过还是要谢谢您~
2019-05-24 回复 有任何疑惑可以回复我~
#4

心声之新生 回复 慕婉清8375384 提问者

练练就知道了
2019-05-27 回复 有任何疑惑可以回复我~
#5

qq_慕函数2369942

你在这瞎说你吗呢?
2019-06-11 回复 有任何疑惑可以回复我~
查看2条回复

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

0 回复 有任何疑惑可以回复我~

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


1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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

2 回复 有任何疑惑可以回复我~
#1

慕婉清8375384 提问者

谢谢!!
2019-06-04 回复 有任何疑惑可以回复我~
#2

慕娘2217437 回复 慕婉清8375384 提问者

少些误区,相信自己。
2019-06-04 回复 有任何疑惑可以回复我~
#3

慕婉清8375384 提问者 回复 慕娘2217437

嗯嗯 !!
2019-06-05 回复 有任何疑惑可以回复我~
#4

qq_慕函数2369942

没毛病 上面那两个明显在瞎说 两个憨憨在这误人子弟
2019-06-11 回复 有任何疑惑可以回复我~
查看1条回复

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

0 回复 有任何疑惑可以回复我~
#1

慕婉清8375384 提问者

请问怎么区分呢?
2019-05-22 回复 有任何疑惑可以回复我~
#2

慕勒9509760 回复 慕婉清8375384 提问者

如果是内部类里定义的产量,在内部类方法中可以直接通过变量名访问,如果是外部类的产量通过this访问,你贴的图已经说明了这种情况
2019-05-22 回复 有任何疑惑可以回复我~
#3

慕婉清8375384 提问者 回复 慕勒9509760

可是我贴的图,调用是错误的呀··~
2019-05-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信