如何删除构造函数中重复的代码?

Lew*_*lly 3 java constructor object

我有以下代码;

abstract class Animal{

    public String name;
    public int legCount;

    //If has no leg count
    public Animal(String name){
        this.name = name;
        this.legCount = 4;  //Default leg count is 4

        System.out.println("Created animal: " + name);
    }

    //If has a leg count
    public Animal(String name, int legCount){
        this.name = name;
        this.legCount = legCount;

        System.out.println("Created animal: " + name);
    }}
Run Code Online (Sandbox Code Playgroud)

我重复了System.out.println("Created animal:"+ name); 两次.有没有办法删除这个重复的代码,所以它只运行一次?拥有多个构造函数可能会让这有点痛苦.

Nao*_*dgi 6

class Animal{

    public String name;
    public int legCount;


    public Animal(String name){
        this(name,4);
    }

    public Animal(String name, int legCount){
        this.name = name;
        this.legCount = legCount;
        System.out.println("Created animal: " + name);
    }


}
Run Code Online (Sandbox Code Playgroud)

现在你只重复一次印刷线

1参数构造函数使用默认值4调用2参数构造函数.


rge*_*man 5

在您只接受名称的构造函数中,通过调用将其委托给另一个构造函数:

public Animal(String name){
    this(name, 4);
}
Run Code Online (Sandbox Code Playgroud)

这将委托给另一个构造函数,以便不会重复任何代码。这不仅只有一行调用代码System.out.println,而且只有一行代码分配给 ,name并且只有一行代码分配给legCount