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

/*这个只是 o.name;可能是动态静态之分吗,所以不能用o.name对象名加变量名来调用还是就近原则*/


//外部类HelloWorld

public class HelloWorld{

    

    //外部类的私有属性name

    private String name = "imooc";

    

    //外部类的成员属性

    int age = 20;

    

//成员内部类Inner,这个因为外部类有属性所以内部类写在第三行

public class Inner {

String name = "爱慕课";

        //内部类中的方法

public void show() { 

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

/*用外部类名.this.变量名来区别外部变量名和重写的内部变量名*/

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

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

}

}

    

//测试成员内部类

public static void main(String[] args) {

        

        //创建外部类的对象o

HelloWorld o = new HelloWorld (); 

        

        //创建内部类的对象inn

    Inner inn=o.new Inner();

      /*  o.name;可能是动态静态之分吧*/

        //调用内部类对象的show方法

inn.show();

}

}


正在回答

2 回答

o是非静态对象,o虽然在静态方法里面创建的,但是他是整个类HelloWorld的实例,所以可以直接调用name,所以o.name也没什么动态静态之分。

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

o.name =>"imooc";

动静之分用static来区分

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

举报

0/150
提交
取消

/*这个只是 o.name;可能是动态静态之分吗,所以不能用o.name对象名加变量名来调用还是就近原则*/

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