先跟你分析出现这个的原因:
原因是你的shuru()和sucu()方法中,都进行了Use w = new Use(),也就是你先输入,然后输出的时,你创建了两个对象,这两个对象名字相同就叫 w ,所以你在第二次的get的时候其实get的是第二w的内容,而第二个没有设值,所有拿到的就是你的初始值。
解决方法:
我写个类似的你看看,大概就知道了//在A类中定义
public class A {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void shuru(){
System.out.println("------------创建玩家-------------\n------------输入一号玩id-------------");
w.setId1(input.nextInt());
System.out.println("------------输入一号玩家姓名-------------");
w.setName1(input.next());
System.out.println("------------输入二号玩家id-------------");
w.setId2(input.nextInt());
System.out.println("------------输入二号玩家姓名-------------");
w.setName2(input.next());
System.out.println("------------成功创建玩家-------------");
}
public void sucu(){
System.out.println(w.getName1());
}
}
//在B类中使用
public class B {
A a = new A();
a.shuru();
a.sucu();
}
//这个中间之new了一个对象