在一个类中使用2个参数化构造函数是否合乎道德?由于每个参数化构造函数都会影响类中方法执行的处理类型。
答案 0 :(得分:0)
使用具有不同参数的多个构造函数是完全可以接受的。但是,对于您的类的用户而言,使用哪个构造函数并不重要。您不希望班级用户必须跟踪它。
例如,看一下java.lang.String课程。它包括:
String( byte[] bytes )
String( StringBuilder )
这些是具有不同参数的构造函数,但它们都会生成String
的实例。对生成的String实例的用户如何创建它无关紧要。同样地,当您使用不同的构造函数创建自己的类时,您必须确保使用类实例的人不必跟踪使用哪个构造函数来创建实例。这是“道德的”,或者说是“良好的编程实践”部分。
所以答案是肯定的,如果有充分的理由,你甚至鼓励你使用多个构造函数,但要确保那些使用你的课程的人(包括将来的你!)不需要再做任何记账比必要的。
关于拥有多个构造函数的更多信息:
直接与问题无关,但是当您开始尝试使用多个构造函数时,您会遇到一些问题。
通常,您会发现有几个这样的构造函数共享基本操作;在这种情况下,您通常可以将此代码放在一个单独的构造函数中,使用this
调用:
class Foo
{
private String str;
private int a;
Foo( String str, int a )
{
this.str = str;
this.a = a;
}
Foo( int a )
{
this( null, a );
}
Foo( String str )
{
this( str, 0 );
}
}
答案 1 :(得分:0)
我只是不确定你的意思。您的构造函数中可能有多个参数,您可能会重载构造函数
public Objects(){
//Do stuff
}
没有参数。您可以使用不同的签名
重载该构造函数public Objects(String name){
this.name = name;
//Do stuff
}
又一次
public Objects(String name, int index){
this.name = name;
this.index = index;
}
另外,请选择一种语言标签。 Java和JavaScript不是一回事。如果您有任何问题,请随时提出。如果此答案有帮助,请将其标记为已解答