我對枚舉非常陌生,對編程只有初步的理解。我最近發現了關於枚舉的問題,並相信它們是我的一些問題的完美解決方案,但需要一些關於如何將它們合併到我的代碼中的幫助。如何使用另一個類中的枚舉變量?
我開始創建一個枚舉類。現在我正在爲我的枚舉使用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/ –