请问为什么

来源:7-7 Java 中的静态内部类

MiaLoo

2016-05-16 19:44

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

写回答 关注

4回答

  • 喵喵小喵
    2016-05-17 11:07:27
    已采纳

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

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

    MiaLoo

    非常感谢!

    2016-05-18 20:55:14

    共 1 条回复 >

  • 雪中_悍刀行
    2016-07-08 12:04:18

    不会,

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


  • 蒋伟
    2016-05-16 21:07:12

    不会,

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


  • aliang3171390
    2016-05-16 20:45:08

    不会,

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


Java入门第二季 升级版

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

530559 学习 · 6091 问题

查看课程

相似问题