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); 两次.有没有办法删除这个重复的代码,所以它只运行一次?拥有多个构造函数可能会让这有点痛苦.
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参数构造函数.
在您只接受名称的构造函数中,通过调用将其委托给另一个构造函数:
public Animal(String name){
this(name, 4);
}
Run Code Online (Sandbox Code Playgroud)
这将委托给另一个构造函数,以便不会重复任何代码。这不仅只有一行调用代码System.out.println,而且只有一行代码分配给 ,name并且只有一行代码分配给legCount。
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |