System.out.println("外部类中的name:" + HelloWorld.this.name);

来源:7-6 Java 中的成员内部类

Code_More

2016-01-07 13:58

System.out.println("外部类中的name:" + HelloWorld.this.name);

为什么不能是:System.out.println("外部类中的name:" + HelloWorld.name);?

this在这的作用是什么?

写回答 关注

4回答

  • cicineer
    2016-01-15 07:22:14

    其实就是这个意思,由于这个语句是位于内部类的成员方法中,所以需要使用HelloWorld这个类去引用this这个关键字,这就相当于指向了HelloWorld这个类,再通过这个类名来访问这个类中的属性。this这里就相当于一个指向的作用,指向了HelloWorld这个类,不知道这样解释的清楚不

    weixin...

    是不是因为只写HelloWorld.name,还是会包括外部类和内部类的两个name?为啥不能用this.HelloWorld.name呢?好晕

    2016-05-01 12:24:51

    共 1 条回复 >

  • 努力提升
    2016-01-07 14:49:05

    如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this

  • 努力提升
    2016-01-07 14:09:58

    这里面的this表示外部类对象的引用,就不用先创建外部类的对象,再通过对象调用属性了,不能直接用HelloWorld.name调用。

  • 505380967
    2016-01-07 14:07:12

    HelloWorld.name只能访问外部的静态类,对于非静态类,要通过 “ new 外部类().成员”访问,此处的this应该就是这个作用吧

Java入门第二季 升级版

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

530559 学习 · 6091 问题

查看课程

相似问题