Zip*_*ppy 16 java constructor overloading duplicates
如果我的自定义类中有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)
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 19
您可以使第二个构造函数调用第一个:
public MyClass(int number1, int number2, int number3) {
this(number1, number2);
Run Code Online (Sandbox Code Playgroud)
bas*_*bas 18
您可以调用其他构造函数并将所有逻辑放在那里.
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)
}
Run Code Online (Sandbox Code Playgroud)
如果参数太多而无法管理,您还可以使用构建器模式:
MyClass obj = Myclass.set1(number1).setN2(number2).setN3(number3).build();
Run Code Online (Sandbox Code Playgroud)
build() 可以称之为繁琐的构造函数.
| 归档时间: |
|
| 查看次数: |
2218 次 |
| 最近记录: |