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

关于内部类中引用外部属性

为什么不能直接(外部类名.属性名)呢

正在回答

4 回答

作用范围不同,直接那样做,容易搞混淆

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

public class HelloWorld{

 //外部类的私有属性name

    private String name = "imooc";

//外部类的成员属性

    int age = 20;

//成员内部类Inner

public class Inner {

String name = "爱慕课";       

public void show() { 

-----------------------------------1------------------

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

System.out.println("内部类中的name:" + name     );

System.out.println("外部类中的age:" + age);

结果:

外部类中的name:imooc (两个name名称相同,外部类的变量使用this关键字

内部类中的name:爱慕课

外部类中的age:20

----------------------------------2-------------------

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

System.out.println("内部类中的name:" + name     );

System.out.println("外部类中的age:" + age);

结果:

外部类中的name:爱慕课  (两个name名称相同,默认内部类的变量name

内部类中的name:爱慕课

外部类中的age:20


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

对于成员内部类来说,当外部类和内部类有相同的成员变量和方法时,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量和方法需要使用this关键字;对于静态内部类,不能直接访问外部类的非静态成员,需要通过"new外部类().成员"的方式访问

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

举报

0/150
提交
取消

关于内部类中引用外部属性

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