课程
/后端开发
/Java
/Java入门第二季 升级版
各位大佬,请问内部类方法不能同时调用同名的内部类变量和外部类变量吗?
2019-05-21
源自:Java入门第二季 升级版 7-8
正在回答
你截图的“访问外部类的变量b” 其实这里它是方法中的变量,可以直接通过变量名访问的。(内部类定义在该方法中的)
HelloTest.this.b这个是访问外部类的非静态变量用的,假如你在HelloTest下面定义了一个非静态变量int b= 5;这个时候你的程序就对了
慕婉清8375384 提问者
慕慕007 回复 慕婉清8375384 提问者
慕婉清8375384 提问者 回复 慕慕007
心声之新生 回复 慕婉清8375384 提问者
qq_慕函数2369942
我前面那个搞错了,楼主为什么你没有调用外部类show()方法?
为什么我觉得内部类调用方法错了呢?不应该是先调用外部类方法再内部类方法嘛?求解
大哥 我也遇到这个问题了,。。。 这些评论我一个都看不懂 请问解决了吗
你使用new HelloTest().b试试看,是否可以调用
直接HelloTest.b 就可以调用了吧
我觉得上面这些人都是在一本正经的瞎说,对自己说出来的答案有验证过吗 ,在这边误人子弟.我是写js的,在学习到这一章节的时候也在考虑方法内部类里面同名的变量怎么取值这个问题.
首先内部类中的b取值肯定是就近原则,如果出现同名变量,这种取方法里面的变量是不符合规范的,方法不是对象,不能通过.b这种方式取,你若想取到方法中的值,那只能是方法执行有return b,才能取值到这个值.但是真要这么做会导致内存溢出.show方法被循环执行.
慕娘2217437 回复 慕婉清8375384 提问者
慕婉清8375384 提问者 回复 慕娘2217437
可以调用啊,调用的时候进行区分就可以
慕勒9509760 回复 慕婉清8375384 提问者
慕婉清8375384 提问者 回复 慕勒9509760
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
4 回答重名--方法内部类的变量与外部类的变量重名
3 回答java中方法内部内如何访问同名外部类变量
4 回答内部类如果和外部类变量和方法没有重名是不是可以直接在内部类调用外部类的变量和方法
3 回答方法内部类访问外部重名变量
2 回答为什么在内部类调用外部类里相同变量名时出错?