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

为啥是HelloWorld.this.name 这么调用外部类的名字

public void show() { System.out.println("外部类中的name:" +HelloWorld.this.name                  ); 请问这个name又不是静态成员,为什么可以直接用类名.的方式调用呢?

正在回答

3 回答

你理解的真棒,解决了我的问题

package guqingtong;

//外部类HelloWorld
public class HelloWorld{
  
  //外部类的私有属性name
  private static String name = "imooc";
  
  //外部类的成员属性
  int age = 20;
  
 //成员内部类Inner
 public class Inner {
  String name = "爱慕课";
      //内部类中的方法
  public void show() { 
   System.out.println("外部类中的name:" +HelloWorld. name                );
   System.out.println("内部类中的name:" +   name               );
   System.out.println("外部类中的age:" + age);
  }
 }
  
 //测试成员内部类
 public static void main(String[] args) {
      
      //创建外部类的对象
  HelloWorld o = new HelloWorld (); 
      
      //创建内部类的对象
  Inner inn = o.new  Inner ()         ;
      
      //调用内部类对象的show方法
  inn.show();
 }
}


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

谢谢你的回答,那请问为什么可以直接用类名调用呢?

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

//外部类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                 );

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

为了区别内部 和 外部(当内部和外部一样的话),引用外部时,就要这样;否则就默认内部的name;


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

举报

0/150
提交
取消

为啥是HelloWorld.this.name 这么调用外部类的名字

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