gpt4 book ai didi

java - java中如何界定类实例变量的范围?

转载 作者:行者123 更新时间:2023-11-30 07:14:23 26 4
gpt4 key购买 nike

我正在做一些 java 练习,并试图找出一种对实例变量的范围施加限制的方法。

例如,我构建了一个名为 Time 的类。它有 3 个实例变量,小时、分钟和秒。

以小时为例,它应该在0到23之间。我在这个类中有一些方法来操作小时变量。但我需要确保小时始终在 0 到 23 之间。

我知道有一个方法,枚举类型。像这样

public enum hour {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23
}

然后在Time类中插入一个小时类型的变量。

但是如果hour是double类型的变量,连续变量呢。并且有上限和下限。如何分隔连续变量?

最佳答案

没有编译器保存方式来设置限制。一种可能(并且始终推荐)的方法是使用私有(private)变量并在 setter 方法中检查边界,如果边界不正确则抛出 RuntimeException。

例子:

public class Time {
private double hour;

public void setHour(double hour) {
if(hour < 0 ) { // and so on - i think you can imagine the logical expression
throw new IllegalArgumentException("hour "+hour+" is not valid.");
}
this.hour = hour;
}
}

关于java - java中如何界定类实例变量的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18484839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com