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) {