删除构造函数中重复的变量初始化

时间:2015-08-31 17:36:23

标签: java

我接受了Java采访的采访,小组问我一个问题。代码是

public class ClassA
{
    int a,b;

    public ClassA(int a)
    {
        this.a = a;
    }
    public ClassA(int a,int b)
    {
        this.a = a;
        this.b = b;
    }
}

他们问我,我们已经在代码中编写了两次代码(this.a = a;)。因此,不应多次编写一个代码。我们如何编写它一次,它应该在两个构造函数被调用时起作用?

2 个答案:

答案 0 :(得分:10)

面试官意味着这个

public class ClassA
{
    int a,b;

    public ClassA(int a)
    {
        this.a = a;
    }
    public ClassA(int a,int b)
    {
        this(a);   // calling another constructor
        this.b = b;
    }
}

答案 1 :(得分:0)

使用setter方法:

public class ClassA {
    int a,b;

    public ClassA(int a) {
        this.setA(a);
    }
    public ClassA(int a,int b) {
        this.setA(a);   // calling another constructor
        this.b = b;
    }
    public void setA(int a) {
        this.a = a;
    }
}