不在同一个外部类的内部类(在同一个类中)中的变量不能用this吗,要怎么用?

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

180416

2019-01-17 10:13

前后两个报错:

The public type a must be defined in its own file

No enclosing instance of the type a.innerC.innerD is accessible in scope

像这样:

https://img.mukewang.com/5c3fe4870001f95f07570292.jpg

(代码:不管空格了)

public class a{

public class innerA{

public class innerB{

public void method4(){

System.out.println("a.innerC.innerD.this.var3:"+a.innerC.innerD.this.var3);

}

}

}

public class innerC{

public class innerD{

public int var3=23;

}

}


}


写回答 关注

2回答

  • 慕移动9181930
    2022-03-29 03:43:03
  • 慕娘8574744
    2019-01-17 16:44:23

    public class a {

    public class innerA{

    public class innerB{

    public void method4(){

    System.out.println("a.innerC.innerD.this.var3:"+a.innerC.innerD.var3);

    }

    }

    }

    public class innerC{

    public class innerD{

    public static final  int var3=23;

    }

    }

    }

    第一个问题是你创建类时名字不是这个,新建一个名为a的class文件就行了,第二个问题将var3的前边加 static final 就可以访问了

    180416

    对,竟然不是a.java,可能是复制到新的页面了; 就是把var3声明为静态常量,然后类名.变量名访问; 然后这种情况除了实例化innerD,和声明var3为静态常量之外,还能怎么用(关键是用this)

    2019-01-18 09:40:32

    共 1 条回复 >

Java入门第二季 升级版

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

530652 学习 · 6091 问题

查看课程

相似问题