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

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

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

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

this在这的作用是什么?

正在回答

5 回答

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

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

weixin_慕哥9207569

是不是因为只写HelloWorld.name,还是会包括外部类和内部类的两个name?为啥不能用this.HelloWorld.name呢?好晕
2016-05-01 回复 有任何疑惑可以回复我~

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

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

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

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

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

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

举报

0/150
提交
取消

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

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