Java 在类构造函数中生成两个选项

Java 在类构造函数中生成两个选项,java,constructor,options,Java,Constructor,Options,其中,??需要插入两个值(不完全在那里,我只需要在创建对象时从两个选项中进行选择)-模拟值和数字值。我不知道如何在构造函数中实现两个选项 我试图将私有字符串信号设置为一个数组,但它要求(应该如此)两个数组值,我需要从两个选项中进行选择。本课程还将有设置者和获取者。因为您正在学习: 定义并使用枚举 abstract class TV extends Electronics{ private double diagonal; private String signal; pr

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


我试图将
私有字符串信号
设置为一个数组,但它要求(应该如此)两个数组值,我需要从两个选项中进行选择。本课程还将有设置者和获取者。

因为您正在学习:

定义并使用枚举

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;
    }
}
然后改变

public enum Signal {
    ANALOG,
    DIGITAL,
    INVALID    
}

还有构造器:

private Signal signal;

请记住,枚举是一个很好的变量选择,它可以是常量,并且属于一个普通的“组”…

上面的答案更易读(我也更喜欢使用枚举),但您也可以使用布尔值

替换
私有字符串信号
具有
私有布尔值是数字

在构造函数中,将其更改为
公共电视([…]双对角线,布尔值为数字,整数频道){

编辑: 与枚举相比,它的优点是可以直接用于
if
语句,如
if(isDigital)

您不必像
if(信号==signal.DIGITAL)


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

我想
信号
应该是两个选项中的一个,而不是两个。您可能正在那里寻找
枚举
。不过,我最终会将
新枚举
更改为
信号
private Signal signal;
public TV(... boolean isOn, double diagonal, Signal signal, int channel) {