java枚举与简单常量声明?
我刚刚开始理解Java中枚举的概念,但我仍然对自己的理解持怀疑态度
例如:方向,我能理解它的用法,我用数字来表示方向,但从来没有真正需要用它做算术
然而,给定一些类似大小的东西,其中大小是常量,但我需要做算术运算,最终声明是否更合适?或者尝试使用
public int getSize()
{
return size;
}
以下是我当前声明的代码:
private static class Size
{
private static final int BOX = 5; //5 pixels
private static final int GRID = 30; //amount of boxes
private static final int GAME = BOX * GRID; //total size in pixels
}
请注意,这是一个私有嵌套类, 我在画图时也使用这些值,参数是整数,我只是做大小。然而,对于这种情况,枚举是否更合适?我该怎么做呢
# 1 楼答案
您认为枚举在处理算术值时是不合适的,这是正确的。枚举用于表示(在编程和数学意义上)相互关联的唯一定义项的集合
在上下文中,使用枚举以这种方式替换大小值是毫无意义的。如果你的物品有30个单位大,那么你需要用一个整数或类似的数字来表示它
在类似的上下文中使用枚举的一个例子是,如果您有5种严格定义的不同大小的项类型(在本例中,您可以将5种类型中的每一种都作为枚举的实例),但它们内部仍然有一个大小变量,每个变量的值不同
# 2 楼答案
需要一些界面欺骗,但这是有效的。在你的情况下,这不一定是最好的方法,但这是一个巧妙的小练习
输出:
# 3 楼答案
Enum的全部目的是使代码更具可读性和可维护性。在需要表示枚举的元素集时,应该随时使用它们
然而,在这种情况下,final/constant更合适,因为您代表的是一个值(框的数量和像素的数量),而不是枚举集。比如说,如果你想储存不同类型的盒子(金属盒、纸板盒等),那么你可以使用Enum