java - 多个构造函数和 if 语句

标签 java constructor-chaining

我想在我的抽象中定义两个构造函数。

当创建的新实例时,我希望toString根据调用的内容返回不同的内容:

FireEngine

public class FireEngine extends EmergencyVehicle {  

    private String colour;

    public FireEngine(String colour) {
        super (colour);

    }
    public FireEngine() {
        this("red");

    }

    public String toString () {
        if (colour == "red") {
            return "red";
    }   else
        return "no";
    }
}

EmergencyVehicle 类:

public abstract class  EmergencyVehicle extends RoadVehicle {

    public boolean codeBlue = false;

    public EmergencyVehicle(String colour){
        super(colour);
    }

    public boolean isEmergency () {
        if (codeBlue == true) {
            return true;
        } else {
            return false;
        }
    }

    public void setEmergency(boolean newEmergency) {
        codeBlue = newEmergency;
    }

}

这是一个家庭作业,所以我不需要答案本身,但是上面的代码有意义吗?

例如,如果我添加一个新的紧急车辆,我需要一个 if 语句,具体取决于我添加的车辆的颜色。

最佳答案

第一条评论

不要打电话

this("red");

在默认构造函数中,执行以下操作

colour = "red";

除非 EmergencyVehicle(String color) RoadVehicle(String color) 构造函数正在执行其他操作。

第二句话

不要使用进行比较

if (colour == "red")

使用

if ("red".equals(colour))

第三条评论

方法

public String toString()

应该返回实例的字符串表示形式。您的实现仅返回 redno ,这并没有提供太多信息。使用类似的东西

return("FireEngine(colour=" + colour + ")");

关于java - 多个构造函数和 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843360/

相关文章:

java - 将跟踪模式设置为 cookie 以删除附加的 session ID,而不使用 web.xml

java - 文件输入帮助/建议

java - 在 Java 中链接构造函数而不从默认构造函数抛出异常

c# - 如何链接这些构造函数(C#)?

java - 如果您在动画进行时单击,Android fragment 事务动画会崩溃

java - 如何为 JUnit 模拟多个用户输入

java - 使用java解析robot.txt并判断一个url是否被允许

c# - 表达式表示 `variable' ,其中预期为 `method group'

java - Java 中的构造函数链会创建多个对象吗?

c# - 子类中的构造函数顺序