Java 如何从默认构造函数调用set方法?

Java 如何从默认构造函数调用set方法?,java,Java,我正在处理一个赋值,它要求我创建“一个默认构造函数和一个第二个构造函数,该构造函数期望所有三个值都作为参数传递 public Cat(String newName, int newYearOfBirth, int newWieghtInKilos ) { setName(newName); setYearOfBirth(newYearOfBirth); setWeightInKilos(newWieghtInKilos); } 如何创建调用set方法的默认构造函数 空

我正在处理一个赋值,它要求我创建“一个默认构造函数和一个第二个构造函数,该构造函数期望所有三个值都作为参数传递

public Cat(String newName, int newYearOfBirth, int newWieghtInKilos )
{
    setName(newName);
    setYearOfBirth(newYearOfBirth);
    setWeightInKilos(newWieghtInKilos); 
}

如何创建调用set方法的默认构造函数

空构造函数可以使用具有默认值的setter

public Cat()
{
    setName(defaultName);
    setYearOfBirth(defaultYearOfBirth);
    setWeightInKilos(defaultWieghtInKilos); 
}
public Cat(){
    this("",0,0);
}

您只需在默认构造函数中设置默认值

public Cat() {
    setName("MyName");
    setYearOfBirth(1987);
    setWeightInKilos(55);
}

或者,您也可以设置空值。

您可以使用与重载构造函数相同的方式从默认构造函数调用setter

public Cat() {
    setName("MyName");
    setYearOfBirth(1987);
    setWeightInKilos(55);
}
这里唯一的区别是,在默认构造函数中,没有为您提供任何要传递给setter的值


但是,如果希望使用默认值初始化这些字段,则可以使用这些默认值调用setter。

您可以告诉受让人,从两个构造函数调用set方法是错误的做法。您的默认构造函数可能很乐意使用带有默认值的参数构造函数

public Cat()
{
    setName(defaultName);
    setYearOfBirth(defaultYearOfBirth);
    setWeightInKilos(defaultWieghtInKilos); 
}
public Cat(){
    this("",0,0);
}
这将有助于代码重用