Java 具有默认值的构造函数
Java constructor with default values
感谢阅读。
我需要创建构造函数,在一种情况下,它具有下面的默认值示例。
这段代码当然是错误的,是否可以这样做,这意味着万一“狗”构造函数不会要求参数:体重、年龄并将填充 class 字段:体重=1、年龄=1。
在另一种情况下,例如 cat 会询问所有参数吗?通常如何解决这个问题?
public Animal(String spacies, String name, double weight, byte age, boolean isALive){
if (spacies.equals("dog")) {
this.name = name;
this.weight= 1;
this.age = 1;
this.isALive = isALive;
} else {
this.spacies = spacies;
this.name = name;
this.weight = weight;
this.age = age;
this.isALive = isALive;
}
}
创建第二个构造函数来设置这些值
public Animal(String spacies, String name, boolean isALive){
this("dog", name, 1, 1, true)
}
最好的方法是使用继承。动物是抽象实体。你应该从中衍生出特定的动物。
可以有不同的方法。试图提供一种简单的解决方案。
public abstract class Animal {
private final String species;
private final String name;
private final double weight;
private final byte age;
private final boolean isALive;
public Animal(String species, String name, double weight, byte age, boolean isAlive) {
this.species = species;
this.name = name;
this.weight = weight;
this.age = age;
this.isALive = isAlive;
}
}
class Dog extends Animal {
public Dog(String dogName, boolean isAlive) {
super("Dog", dogName, 1.0, (byte) 1,isAlive);
}
}
在处理 OOPS 概念时尝试与现实世界相关联。
感谢阅读。
我需要创建构造函数,在一种情况下,它具有下面的默认值示例。 这段代码当然是错误的,是否可以这样做,这意味着万一“狗”构造函数不会要求参数:体重、年龄并将填充 class 字段:体重=1、年龄=1。 在另一种情况下,例如 cat 会询问所有参数吗?通常如何解决这个问题?
public Animal(String spacies, String name, double weight, byte age, boolean isALive){
if (spacies.equals("dog")) {
this.name = name;
this.weight= 1;
this.age = 1;
this.isALive = isALive;
} else {
this.spacies = spacies;
this.name = name;
this.weight = weight;
this.age = age;
this.isALive = isALive;
}
}
创建第二个构造函数来设置这些值
public Animal(String spacies, String name, boolean isALive){
this("dog", name, 1, 1, true)
}
最好的方法是使用继承。动物是抽象实体。你应该从中衍生出特定的动物。 可以有不同的方法。试图提供一种简单的解决方案。
public abstract class Animal {
private final String species;
private final String name;
private final double weight;
private final byte age;
private final boolean isALive;
public Animal(String species, String name, double weight, byte age, boolean isAlive) {
this.species = species;
this.name = name;
this.weight = weight;
this.age = age;
this.isALive = isAlive;
}
}
class Dog extends Animal {
public Dog(String dogName, boolean isAlive) {
super("Dog", dogName, 1.0, (byte) 1,isAlive);
}
}
在处理 OOPS 概念时尝试与现实世界相关联。