在 class 构造函数中制作两个选项

Making two options in class constructor

abstract class TV extends Electronics{
    private double diagonal;
    private String signal;
    private int channel;

    public TV() {}

    public TV(LocalDate productionDate, String name, int counterOnOff, boolean isOn, double diagonal, String signal, int channel) {
        super(productionDate, name, counterOnOff, isOn);
        this.diagonal= diagonal;
        this.signal= ????;
        this.channel= channel;
    }
}

我需要在 ???? 中插入两个值(不完全在那里,我只需要在创建对象时从两个选项中进行选择)- 模拟和数字。我不知道如何在构造函数中实现两个选项。

我试图使 private String signal 成为一个数组,但它要求(它应该)提供两个数组值,我需要从两个选项中进行选择。 class.

也将有 setter 和 getter

因为你正在学习:

定义并使用枚举

public enum Signal {
    ANALOG,
    DIGITAL,
    INVALID    
}

然后改变

private String signal;

private Signal signal;

还有构造函数:

public TV(... boolean isOn, double diagonal, Signal signal, int channel) {

请记住,对于可以是常量且属于常见 "group"...

的变量,枚举是一个不错的选择

上面的答案更具可读性(我也更喜欢用枚举来做),但你也可以使用布尔值。

替换private String signal;
private boolean isDigital;

并在您的构造函数中将其更改为
public TV([...]double diagonal, boolean isDigital, int channel) {

编辑: 与枚举相比的优势在于它可以直接在 if 语句中使用,例如
if(isDigital).
您不必像
这样编写相等性检查 if(signal == Signal.DIGITAL)

作为建议:我不建议使用 String 来存储状态。在您的情况下,状态将是 analog/digital。您需要确保始终在所有地方使用相同的字符串(比较时字符串区分大小写)。您可以通过编写常量来帮助它,但是您需要为每个状态使用一个常量。