你如何使用另一个类中的枚举变量?

时间:2017-01-30 05:19:57

标签: java printing enums constants enumeration

我对枚举很新,只对编程有基本的了解。我最近发现了enums并认为它们是我的一些问题的完美解决方案,但需要一些帮助,如何将它们合并到我的代码中。

我开始创建一个枚举类。现在我使用7个常量作为我的枚举,每个常量都有1个String变量描述(?)它。我该如何编码呢?更重要的是我如何从另一个类访问它?例如,我想打印与常量相关的字符串,该常量是我的枚举的当前值。请帮忙。这对我来说真的很难描述,所以希望你们知道我想要的东西。

4 个答案:

答案 0 :(得分:1)

这已在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());

答案 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);