public class Person {private String name ;public void setName(String name) {this.name = name;}public String getName() {return name;}public class Outer{public void getMoney(){System.out.println(Person.this.getName()+"赚钱");}}class Inner{public void heart(){System.out.println(Person.this.getName()+"心脏良好");}public void liver(){System.out.println(Person.this.getName()+"肝脏不好请求治疗");}public void stomach(){System.out.println(Person.this.getName()+"胃良好");}}}public class Run {public static void main(String[] args) {Person p = new Person();p.setName("xx");Person.Outer ou = new Person().new Outer();ou.getMoney();Person.Inner in = new Person().new Inner();in.heart();in.liver();in.stomach();}}
4 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
Person p = new Person();
p.setName("xx");
Person.Outer ou =p.new Outer();
ou.getMoney();
Person.Inner in = p.new Inner();
in.heart();
in.liver();
in.stomach();
你每次都new了个不同的Person,肯定找不到name啊
元芳怎么了
TA贡献1798条经验 获得超7个赞
把new Person().new Outer();改成p.new Outer();
每次new的话会被覆盖掉.
把public String name;改成public static String name;也可以的.因为静态变量不需要new 也可以拿到...
哔哔one
TA贡献1854条经验 获得超8个赞
public static void main(String[] args) {
Person p = new Person();
p.setName("xx");
// Person.Outer ou = new Person().new Outer();
Person.Outer ou = p.new Outer();
ou.getMoney();
// Person.Inner in = new Person().new Inner();
Person.Inner in = p.new Inner();
in.heart();
in.liver();
in.stomach();
}
添加回答
举报
0/150
提交
取消