我正在阅读我的编程文本,我觉得这是一个关于构造函数的非常合乎逻辑的问题。
例如,如果我有代码:
public class Ship{
String name;
int position;
public Ship(int position){
this.position = position;
}
public Ship(String name){
this.name = name;
}
public Ship(){
name = "Titanic";
position = 0;
}
}
因此,如果我的行话更正,Ship()
是默认构造函数。而带参数的构造函数是初始化构造函数。
现在这是背景......这是我的问题!当我使用其中一个包含参数的构造函数时,正在使用的字段会发生什么(在本例中是另一个字段)。例如,当我致电Ship(5)
时,name
数据字段的值是多少?它是采用默认值还是仅采用数据类型的默认值?
这是否意味着如果我调用这个单个参数构造函数,我必须为其他字段设置一个值?
答案 0 :(得分:5)
您未初始化的任何实例变量都由Java提供默认值。原始类型的值为0
,引用类型为null
。
您不必初始化值,但为了清楚起见,最好显式初始化所有值。
答案 1 :(得分:3)
该字段获取默认字段值:数字为0,对象为null。如果默认值不是您想要的,则必须在单参数构造函数中设置其他字段的值。