基於java列舉類綜合運用的解釋。本站提示廣大學習愛好者:(基於java列舉類綜合運用的解釋)文章只能為提供參考,不一定能成為您想要的結果。以下是基於java列舉類綜合運用的解釋正文
以下面代碼以交燈為示例:
public class Test {
public static void main(String[] args) {
Trafficlight light = Trafficlight.RED;
System.out.println(light.time);
System.out.println(light.nextLigth());
// ordinal()辦法前往列舉聲明的次序
System.out.println(light.ordinal());
// values()辦法獲得一切列舉類型的一個數組
for(Trafficlight light1:light.values()){
System.out.println(light1.name());
}
// valueOf()辦法可以把字符串轉換成響應的列舉對象
System.out.println(light.RED ==light.valueOf("RED"));
}
public enum Trafficlight {
GREEN(30) {
@Override
public Trafficlight nextLigth() {
return RED;
}
},
RED(30) {
@Override
public Trafficlight nextLigth() {
return YELLOW;
}
},
YELLOW(10) {
@Override
public Trafficlight nextLigth() {
return GREEN;
}
};
public abstract Trafficlight nextLigth();
private int time;
// 結構辦法
private Trafficlight(int time) {
this.time = time;
}
public int getTime(){
return time;
}
}
}
代碼中,可以看到GREEN,RED,YELLOW,分離是Trafficlight的一個子類,並作為它的成員變量。在Trafficlight有一個籠統辦法nextLight(),在子類中是必需要完成的,所以@Override,別的它們也繼續了父類的辦法,所以可以挪用父類的辦法 getTiime(),因為父類Trafficlight中聲明一個有參數的結構辦法籠罩了無參的結構辦法,所以構建子類時也必需要加上參數。
代碼中light只是相當於一個父類的實例,用它可以獲得各個成員變量的子類,挪用各類辦法,valueOf(String)辦法可以將字符串轉換成一個列舉。