问答详情
源自:7-7 Java 中的静态内部类

请问为什么

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

提问者:MiaLoo 2016-05-16 19:44

个回答

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

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

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

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

    不会,

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


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

    不会,

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


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

    不会,

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