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

请问为什么

请问为什么静态内部类SInner中定义了成员变量b,而外部类SOuter中也定义了一个同名的静态成员变量b,为什么静态类中访问外部变量是用 SOuter.b 而不是 SOuter.this.b?不会因为就近原则而混淆成静态内部变量里的b了吗??

正在回答

4 回答

如果外部类的静态成员与静态内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;

如果外部类的静态成员和成员内部类的成员名称相同,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字

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

MiaLoo 提问者

非常感谢!
2016-05-18 回复 有任何疑惑可以回复我~

不会,

 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员


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

不会,

 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员


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

不会,

 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员


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

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530633    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

请问为什么

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