设置默认值在Java中的类中

时间:2018-01-23 21:15:26

标签: java

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。

2 个答案:

答案 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;
}

这应该可以解决你的问题。