所以我不明白枚舉是什麼,它是不是像一個數組,它可以具有所有不同的數據類型,也可以有其他類似數組的對象?對不起,如果這不是一個好的格式,但這是唯一得到答案的體面plkace。什麼是Java枚舉?
-7
A
回答
1
創建枚舉與文件名EnumDay.java
public enum EnumDay {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,NAVEED
}
,並用文件名TestClass的EnumTest.java
public class EnumTest {
EnumDay day;
public EnumTest(EnumDay day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY:
System.out.println("Weekends are best.");
break;
case NAVEED:
System.out.println(day + " is best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(EnumDay.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(EnumDay.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(EnumDay.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(EnumDay.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(EnumDay.SUNDAY);
seventhDay.tellItLikeItIs();
EnumTest eigththDay = new EnumTest(EnumDay.NAVEED);
eigththDay.tellItLikeItIs();
}
}
2
引述官方的Java文檔本身位置:
枚舉類型是一種特殊的數據類型,使一個變量是一組預定義的常量。該變量必須等於爲其預定義的值之一。常見的例子包括指南針方向(NORTH,SOUTH,EAST和WEST的值)和一週的日子。
見http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
0
一個java枚舉類似於類,但主要用於常量。它使用構造函數,就像一個類。我認爲了解枚舉如何工作的一個好方法就是看一個例子。這是我在學習時寫下自己的一個小例子。
public class UseEnum {
public enum Colors {
RED("red", 1), BLUE("blue", 2), GREEN("green", 3),
YELLOW("yellow", 4), ORANGE("orange", 5), PURPLE("purple", 6),
PINK("pink", 7), WHITE("white", 8), BLACK("black", 9);
private String color = "";
private int id;
private Colors(String color, int id) {
this.color = color;
this.id = id;
}
private String getColor() {
return color;
}
private int getId() {
return id;
}
}
public static void main(String[] args) {
while(true){ //infinite loop
UseEnum ue = new UseEnum();
ue.findColor(option);
}
}
private static int option;
private UseEnum() {
try{
Scanner s = new Scanner(System.in);
System.out.print("Enter an ID: ");
option = s.nextInt();
}catch(Exception e){
System.out.println("\terror: invalid number");
System.exit(1);
}
}
private void findColor(int id) {
boolean found = false;
if(id == 10)
System.exit(0);
for(Colors c : Colors.values()) {
if(c.getId() == id) {
System.out.println("\t"+c.getColor());
found = true;
break;
}
}
if(found != true)
System.out.println("\tinvalid");
}
}
可以枚舉在switch語句,這使得它們非常有用的使用。
我推薦這篇文章作進一步閱讀:javarevisited
相關問題
- 1. 什麼是「枚舉」?
- 2. 枚舉值是什麼?
- 3. 枚舉是什麼意思?
- 4. 什麼枚舉
- 5. 是枚舉Java中的枚舉
- 6. 爲什麼枚舉包括可枚舉
- 7. Java枚舉定義有什麼問題
- 8. 爲什麼Java枚舉不可克隆?
- 9. 枚舉的枚舉[JAVA]
- 10. Java類枚舉枚舉類
- 11. Java枚舉找到枚舉
- 12. 什麼是HTML中的枚舉屬性?
- 13. 什麼是c中枚舉的int值?
- 14. 什麼是「〜」枚舉之前意味着
- 15. 什麼是類,枚舉,接口,屬性?
- 16. Object.create中的枚舉參數是什麼?
- 17. 枚舉中的值是什麼?
- 18. Java7/WatchEvent - 爲什麼它不是枚舉?
- 19. MvvmCross:枚舉MvxRequestedByType的目的是什麼?
- 20. 什麼是TypeScript中的枚舉標誌?
- 21. 什麼是枚舉類型的操作?
- 22. 什麼是枚舉的返回類型|?
- 23. 什麼是[?]以上枚舉/類定義?
- 24. Python中枚舉的意思是什麼?
- 25. 這個枚舉是什麼意思?
- 26. 是什麼這兩個枚舉
- 27. 什麼是Objective-C的枚舉類型
- 28. 枚舉的目的是什麼?
- 29. 什麼是System.Windows.Forms.Keys枚舉中的「OEM」鍵?
- 30. 什麼是實現細節的枚舉?
你也許可以在其他地方找到幫助。您閱讀過哪些特定文檔,以及需要哪些具體文檔的幫助? –
我建議你再次閱讀Java教程。 –
可能的重複[爲什麼和爲什麼:java枚舉](http://stackoverflow.com/questions/4709175/why-and-what-for-java-enum) –