我对枚举非常陌生,对编程只有初步的理解。我最近发现了关于枚举的问题,并相信它们是我的一些问题的完美解决方案,但需要一些关于如何将它们合并到我的代码中的帮助。如何使用另一个类中的枚举变量?
我开始创建一个枚举类。现在我正在为我的枚举使用7个常量,并且每个常量都有1个描述(?)它的String变量。我如何编码?更重要的是,我如何从另一个课程访问此课程?例如,我想打印与常量相关的字符串,即我的枚举的当前值。请帮忙。这对我来说真的很难形容,所以希望你们知道我想要问什么。
我对枚举非常陌生,对编程只有初步的理解。我最近发现了关于枚举的问题,并相信它们是我的一些问题的完美解决方案,但需要一些关于如何将它们合并到我的代码中的帮助。如何使用另一个类中的枚举变量?
我开始创建一个枚举类。现在我正在为我的枚举使用7个常量,并且每个常量都有1个描述(?)它的String变量。我如何编码?更重要的是,我如何从另一个课程访问此课程?例如,我想打印与常量相关的字符串,即我的枚举的当前值。请帮忙。这对我来说真的很难形容,所以希望你们知道我想要问什么。
对不起我不好说,使其静态
让它公开。以便可以从导入类的任何类访问它。
化妆somethingn这样从不同类
public class DifferentClass
{
public enum reportType
{
firstReport = 1,
secondReport = 2
}
}
进口该类和访问它喜欢的System.out.println( “报告类型:” + reportType.firstReport);
Make什么'公共静态“?实际上,枚举常量已经是。只有常量和某些实用方法应该是“公共静态”。否则这种模式通常会导致麻烦。你的解释不清楚“它”应该是什么。如果你的意思是一个变量来保存一个枚举值,那么任何超出局部范围的范围都是不可能的。请详细说明您的建议如何解决OP的问题。 –
我建议在这个例子中,枚举应该是一个顶级类,它的名字应该遵守Java命名约定。另外,你有没有试过编译你的代码?因为它有错误。 –
要声明一个枚举,按照这个synatx Colors("RED", "BLUE")
要访问的枚举类,声明为public类。如果该类在另一个包中,则将该类导入引用这些枚举的类中。
这已经涵盖了official tutorial
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());
枚举常量覆盖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教程的链接。
不要解释你的代码 - 把一些在你的问题! – GhostCat
https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html – shmosel
试试这个链接http://www.java2novice.com/java-lang/enum/defined-inside-class/ –