构造函数及其使用方式

use*_*101 0 java parameters constructor default

我正在阅读我的编程文本,我觉得这是一个关于构造函数的非常合乎逻辑的问题.

例如,如果我有代码:

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;
   }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我的行话正确,Ship()则默认构造函数.而带参数的构造函数是初始化构造函数.

现在这是背景......这是我的问题!当我使用其中一个包含参数的构造函数时,正在使用的字段会发生什么(在本例中是另一个字段).例如,当我调用数据字段Ship(5)的值是什么时name?它是采用默认值还是仅采用数据类型的默认值?

这是否意味着如果我调用这个单个参数构造函数,我必须为其他字段设置一个值?

rge*_*man 5

您未初始化的任何实例变量都由Java提供默认值.原始类型获取值0,引用类型为null.

您不必初始化值,但为了清楚起见,最好显式初始化所有值.