class Test {
int a = 0;
int b = 0;
int c = 0;
Test(int x, int y, int z) {
a += x;
b += y;
c += z;
}
}
class Ak {
public static void main(String[] args) {
Test t1 = new Test(10, 20, 30);
Test t2 = new Test(1, 1, 1);
System.out.println(t2.a + " " + t2.b + " " + t2.c);
}
}
这是我的代码,我实际上要做的是。我设置t1的值,即10,20,30。现在当我创建另一个对象时,我想用前一个对象的值添加那些值。
示例,在这种情况下,t1中的My Values为10,20,30 我在t2中的值是1,1,1 所以现在如果我显示t2.a,t2.b,t2.c的输出,而不是将值显示为1,1,1我希望它们被添加到Previous对象的值,即10,20,30.So当我显示我的t2.a,t2.b,t2.c的值时,它来自11,21,31。
答案 0 :(得分:0)
如果要在一个类的实例之间共享字段的值,则应使用静态字段。
在你的例子中将是:
static int a = 0;
static int b = 0;
static int c = 0;
注意:在这种情况下,
之间没有区别 System.out.println(t2.a +" "+ t2.b +" "+t2.c);
和
System.out.println(t1.a +" "+ t1.b +" "+t1.c);
因为他们分享字段值。
答案 1 :(得分:0)
如果你想保持两个对象分开,你应该创建另一个函数以加上第一个对象的结果,或者只是覆盖构造函数,因为如果你改变了那个参数的数量就可以创建多个之一:
Test(Test previous, int a, int b, int c){
Test res = new Test(previous.a, previous.b, previous.c);
res.a+=a;
res.b+=b;
res.c+=c;
return res;
}
这应该可以解决你的问题。