一个Java应用程序需要多少构造函数?
因此,如果我有一个名为“X”的一个Java应用程序需要多少构造函数?,java,constructor,Java,Constructor,因此,如果我有一个名为“X”的公共类,它有5个变量。我必须为每个变量组合编写构造函数吗?我的教学没有为我澄清这一点,但我认为这是没有必要的,因为应用程序可能会太重(或不是?),否则这可能会增加应用程序的灵活性 提前谢谢你。视情况而定 从我所看到的情况来看,五个实例变量的数量并不是很大,因此一个采用5参数的构造函数不会是世界上最糟糕的事情。正如您所知,Java允许您在一个类中拥有多个构造函数,因此您可以使用一个为某些参数提供默认值的构造函数来重载接受5参数的构造函数,例如: public Test
公共类,它有5个变量。我必须为每个变量组合编写构造函数吗?我的教学没有为我澄清这一点,但我认为这是没有必要的,因为应用程序可能会太重(或不是?),否则这可能会增加应用程序的灵活性
提前谢谢你。视情况而定
从我所看到的情况来看,五个实例变量的数量并不是很大,因此一个采用5
参数的构造函数不会是世界上最糟糕的事情。正如您所知,Java允许您在一个类中拥有多个构造函数,因此您可以使用一个为某些参数提供默认值的构造函数来重载接受5
参数的构造函数,例如:
public Test(int a, int b, String c, long d, float e) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.e = e;
}
public Test(int a, int b) {
this(a, b, "Test", 0L, 3.14F);
}
如果在实例化对象时只想初始化部分实例变量而不是全部实例变量,也可以查看。如果需要,可以不提供公共构造函数
使用Java,您可以使用多个构造函数来实现对象初始化的正确行为。它们的数量来自可能的真实场景。例如,如果最后两个参数是可选的,或者可以根据以前的参数进行估计,请提供此类构造函数
您还可以对this()使用一些技巧,如下所示:
public class Test {
private int a;
private int b;
private int c;
private int d;
public Test(int a, int b, int c, int d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
public Test(int a, int b) {
this.a = a;
this.b = b;
this.c = 0;
this.d = 0;
// or: this(a, b, 0, 0);
}
public Test() {
this(5, 1, 0, 0);
}
}
在定义构造函数时,我会问自己,为了拥有一个类的工作实例,我需要的最少信息是什么。例如,类java.io.File有4个构造函数,它们都有一个指向该文件的路径。没有空构造函数,因为没有路径或文件系统位置的文件没有意义
现在对于Bike类,您可能希望定义一个空构造函数,用标准的Bike属性初始化实例:2个轮子等,然后根据需要定制setter。添加构造函数不会使应用程序变得沉重,只是可读性较差,而且在添加从来没有人使用过的构造函数时会浪费时间。您还可以在通过setter方法构造对象之后设置变量,实际上很常见的情况是,变量不是由构造函数设置的,而是以后才设置的。构造函数用于变量,这些变量必须在构造时设置或经常设置以方便使用。您不需要提供任何构造函数,因为Java编译器将为您创建一个构造函数。有关更多信息,请参见Java中的默认构造。另请参见构造复杂对象的步骤。