如何处理 2 个几乎相同的构造函数

2022-09-02 19:33:14

如果我的自定义类中有2个构造函数,其中一个调用了一个额外的参数,并完成了第一个构造函数所做的一切,但只需要一行额外的代码(这个额外的行利用了额外的参数),那么如何最好地处理这个问题而不必复制第一个构造函数中的所有代码?

示例代码

public myConstuctor(int number, int number2){

    int result = (number + number2);
    int result2 = (number2 - number1)

    //Etc
    //Etc
    //Etc
    //Etc

}

public myConstructor(int number1, int number2, int number 3){

    int result = (number + number2);
    int result2 = (number2 - number1)

    //Etc
    //Etc
    //Etc
    //Etc

    int result3 = (result + result2 + number3)


}

答案 1

您可以让第二个构造函数调用第一个构造函数:

public MyClass(int number1, int number2, int number3) {
    this(number1, number2);

答案 2

您可以调用另一个构造函数,并将所有逻辑都放在那里。

public myConstructor(int number, int number2){
    this(number, number2, 0);
}

public myConstructor(int number1, int number2, int number3){

    int result = (number + number2);
    int result2 = (number2 - number1)

    //Etc
    //Etc
    //Etc
    //Etc

    int result3 = (result + result2 + number3)


}

推荐