可以说我有一类“ComputerInsane”与私人领域“cpuCount”和一个默认的构造函数,像这样:当我应该初始化构造函数内部的类字段和外部构造函数?
public class ComputerInsane {
private int cpuCount = 23;
public ComputerInsane() {
//default constructor
}
}
现在我可以初始化cpuCount构造外的23值像上面,因此,当我在类的外部创建类computerInsane的实例时,私有字段cpuCount将自动初始化为23.但是,我也可以在声明变量之后在构造函数中进行初始化,如下所示:
public class ComputerInsane {
private int cpuCount;
public ComputerInsane() {
//default constructor
cpuCount = 23;
}
}
这样它也会在我创建时自动调用当调用默认构造函数时,类computerInsane的一个实例。我的问题是这两种字段初始化之间的实际区别是什么,我应该做第一个还是第二个变体?
更重要的是,可以说这些字段是需要用“new”或数组初始化的其他类的对象,因为它们还需要用“new”初始化。在同样的意义上,我然后去:
public class ComputerInsane {
private int cpuCount = 23;
private int[] someArray = new int[10];
Someclass object1 = new Someclass();
public ComputerInsane() {
//default constructor
}
}
还是我去:
public class ComputerInsane {
private int cpuCount;
private int[] someArray;
Someclass object1;
public ComputerInsane(){
//default constructor
cpuCount = 23;
someArray = new int[10];
object1 = new Someclass();
}
}
更重要的是preferrable,什么我应该做的?
如果它是一个文字或一个常量,它并不重要。如果它取决于一个参数,那么它应该在构造函数中。 (在你的例子中有几个语法错误,以及你可能想要坚持Java命名约定) – SomeJavaGuy