我对枚举很新,只对编程有基本的了解。我最近发现了enums并认为它们是我的一些问题的完美解决方案,但需要一些帮助,如何将它们合并到我的代码中。
我开始创建一个枚举类。现在我使用7个常量作为我的枚举,每个常量都有1个String变量描述(?)它。我该如何编码呢?更重要的是我如何从另一个类访问它?例如,我想打印与常量相关的字符串,该常量是我的枚举的当前值。请帮忙。这对我来说真的很难描述,所以希望你们知道我想要的东西。
答案 0 :(得分:1)
public enum Animal {
COW("moo"), // <== calls constructor with any enum specific data
HORSE("neigh"),
SHEEP("ba ba");
private final String noise; // stores the data
private Animal(String noise) { // <== private constuctor
this.noise = noise;
}
public String getNoise() { // <== allow access to the data
return noise;
}
}
从另一个班级访问
Animal animal = Animal.COW;
System.out.println(animal.getNoise());
答案 1 :(得分:-1)
枚举常量覆盖toString
方法,因此默认情况下它将常量名称作为字符串返回。你甚至可以进一步覆盖它。
Javadocs是你的朋友:http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#toString--。
您也可以直接使用枚举常量本身。
public enum Rainbow {
RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET;
}
单向使用:
Rainbow rainbow = findRainbow();
switch (rainbow) {
case RED:
rosso();
break;
case YELLOW:
giallo();
break;
. . .
case VIOLET:
viola();
break;
}
等
此外,枚举是类,您可以为它们提供更多方法,甚至可以为每个枚举常量不同地覆盖方法。就像Java已经使用toString
。
@shmosel已经提供了enum Tutorial的链接。
答案 2 :(得分:-2)
要声明枚举,请按照此synatx Colors("RED", "BLUE")
要访问枚举类,请将其声明为公共类。如果该类位于另一个包中,请将该类导入到引用这些枚举的类中。
答案 3 :(得分:-3)
对不起我说不能说它是不好的
公开宣传。这样就可以从导入类的任何类访问它。
从不同的班级中做出类似的事情
public class DifferentClass
{
public enum reportType
{
firstReport = 1,
secondReport = 2
}
}
导入该类并像System.out.println一样访问它(“报告类型:”+ reportType.firstReport);