该项目的一些背景:我正在尝试制作一个空间/科幻战斗模拟游戏,桌面RPG风格的骰子机制在复杂程度上达到11,但仍然对于在引擎盖。我目前正在使用星球大战传奇版战斗规则作为基础。
目前我正试图想出一种方法来为车辆分配特征。(可能存储为每辆车的类)每个特征都是一个枚举,因此它可以存储多条信息。以下是我对大小类别的代码:
public enum VehicleSize {
LARGE(1,"Speeder bike",5),HUGE(2,"Small Fighter",10),GARGANTUAN(5,"Tank, Medium Fighter",20),COLOSSAL(10,"Imperial Walker, Light Freighter",50),
COLLOSSALfrigate(10,"Corvette, Frigate",100),COLLOSSALcruiser(10,"Imperial-class Star Destroyer, Cruiser",200),
COLLOSSALstation(10,"The Death Star, Space Station",500);
private final int refMod;
private final int threshMod;
private final String desc;
VehicleSize(int reflexModifier,String example,int thresholdModifier)
{
refMod = reflexModifier;
desc = example;
threshMod = thresholdModifier;
}
public int getRefMod() {
return refMod;
}
public String getDesc() {
return desc;
}
public int getThreshMod() {
return threshMod;
}
}
我的问题是:如何以这样的方式创建车辆配置文件,以便将此类和类似的枚举分配为特征?
答案 0 :(得分:0)
要将其添加到类中,您可以像任何用户定义的类型一样使用它。
public class MyClass {
private MyEnum myEnum;
}
答案 1 :(得分:0)
对于几乎所有目的,类型为枚举类的字段与任何其他对象类型的字段(如Integer或String)没有区别。
创建私有字段,添加getter和setter,或者如果字段是final(可能在您的情况下,因为车辆实例无法更改其类型),请将其添加为构造函数参数并移除设置器。
public class Vehicle {
private final VehicleSize vehicleSize;
// other fields
public Vehicle(VehicleSize vehicleSize) {
this.vehicleSize = vehicleSize;
}
public VehicleSize getVehicleSize() {
return vehicleSize;
}
// rest of class
}
枚举没有什么神秘之处,除了在编译时知道它的不同实例的数量(还有一些东西,但没什么可怕的)。