java封装赋值内部类

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();

}
}

九州编程
浏览 1334回答 4
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啊

元芳怎么了

把new Person().new Outer();改成p.new Outer();每次new的话会被覆盖掉.把public String name;改成public static String name;也可以的.因为静态变量不需要new 也可以拿到...

哔哔one

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();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java