问题描述
public class Test {
public static void main(String[] args) {
Test2 t2 = new Test2();
t2.test();
System.out.println(t2.getNum());
}
}
public class Test2 {
private int num;
public void test() {
Test2 t = new Test2();
t.setNum(3);
System.out.println(t.getNum());
}
public int getNum() {
return num;
}
public void setNum(int bruh) {
this.num = bruh;
}
}
每当我创建Test2
的对象并使用num
设置t2.test()
的值时,使用t2.getNum()
时它将在控制台上打印为0。为什么返回值0?以及如何解决它,使其真正获得我想要的价值?类Test
和Test2
是单独的文件,作为补充。
解决方法
public void test() {
Test2 t = new Test2();
t.setNum(3);
System.out.println(t.getNum());
}
您在该方法中本地创建了一个Test2
的新实例,这对this
实例没有影响。
public void test() {
setNum(3);
}
就足够了。
, t2
和t
或2个不同的对象。
调用t2.test()
时,将创建一个新对象t
,并设置t
对象而不是t2
的属性num。因此,当您调用t2.getNum()
时,num
keep的t2
属性是默认值,对于Java中的整数,默认值为零。