具有范围限制的Java类构造函数参数

我是Java的新手,我想问这个问题只是为了帮助我更好地理解OOP。

假设我要定义一个名为“小时”的新类。要实例化该类,我们需要指定一个整数以指示该实例的小时数。

Hour hr = new Hour(16); // this means to define an hour that indicates 4pm.

因此,当我们在此处定义小时类别时,构造函数的参数应在[0,24)范围内。如果定义了超出此范围的参数,我们如何定义这样的参数?我可以抛出错误吗?

谢谢。

回答:

如果您希望 编译器 捕获错误,则可以为小时定义一个枚举,然后将其用作的构造函数的参数Hour。但是,这可能会使Hour该类无用。

public class Hours {

_1, _2, _3, // etc.

}

public class Hour {

public Hour(Hours hour) { // no need for runtime check here, can not be wrong}

}

Hour hour = new Hour(Hours._3);

此技术可能不是最好的方法,但是通常最好依赖编译时检查,而不是运行时检查。

以上是 具有范围限制的Java类构造函数参数 的全部内容, 来源链接: utcz.com/qa/408071.html

回到顶部