列舉就是要某個型別的變數的取值只能是幾個固定值中的某乙個,否則,編譯器就會報錯,列舉可以讓編譯器在編譯時就可以控制程式中填寫的非法值,普通變數的方式無法實現這一目標;
列舉的實現:
package learn;
/** * 列舉
* @author hui
*/public class enumtest
}在上面的類中,自己定義了乙個型別weekday,建立乙個自己的列舉類weekday_1;
package learn;
public class weekday_1 ;
public static final weekday_1 sun = new weekday_1() ;//星期天
public static final weekday_1 mon = new weekday_1() ;//星期一
public static final weekday_1 tus = new weekday_1() ;//星期二
public static final weekday_1 wen = new weekday_1() ;//星期三
public static final weekday_1 thur = new weekday_1() ;//星期四
public static final weekday_1 fri = new weekday_1() ;//星期五
public static final weekday_1 sat = new weekday_1() ;//星期六
/*
* 他有乙個方法,返回下一天
* */
public weekday_1 nextday() else
if(this==mon)else if(this==tus)else
if(this==wen)else if(this==thur)else
if(this==fri)else
}
/**
* 重寫tostring()方法
*/public string tostring() else if (this == mon) else if (this == tus) else if (this == wen) else if (this == thur) else if (this == fri) else
}}
上面的方法,如果因為if..else..太過繁瑣,可以寫成:
package learn;
public abstract class weekday
//使用內部類的方式來實現nextday
public static final weekday sun = new weekday()
}; public static final weekday mon = new weekday()
}; public static final weekday tus = new weekday()
}; public static final weekday wen = new weekday()
}; public static final weekday thur = new weekday()
}; public static final weekday fri = new weekday()
}; public static final weekday sat = new weekday()
};
/*
* public weekday nextday() else
* if(this==mon)else if(this==tus)else
* if(this==wen)else if(this==thur)else
* if(this==fri)else }
*/
public abstract weekday nextday();
public string tostring() else if (this == mon) else if (this == tus) else if (this == wen) else if (this == thur) else if (this == fri) else
}}
使用jdk自帶的列舉:
package learn;
/*** 列舉
* @author hui**/
public class enumtest
/*** 列舉
* @author hui**/
public enum weekday_2
}
Java 新特性 列舉
package cn.enum.robertchao public enum color1 可以通過 列舉.內容 的形式進行取值操作。2 輸出列舉中的全部內容,可以使用foreach完成。利用foreach把列舉型別中的內容全部取出。package cn.enum.robertchao public...
java新特性 列舉 註解
一 列舉 1.首先列舉中在jdk1.5以後才有的。基於列舉的開發 2.enum類 enum類是enum類的父類,enum其實質就相當於是class類。在enum類中有如下三個方法 1 構造方法 protected enum string name,int ordinal 2 取得列舉名字 publi...
java新特性 萬用字元
在程式類中追加了泛型之後,避免了classcastexception的問題,同時又產生了引數統一化的問題。為了解決該問題,產生了新特性萬用字元,可以接受所有的泛型型別,但不能讓使用者隨意更改。該特性從jdk1.5之後出現。有以下三種常見的萬用字元 extends number 表示泛型型別只能是nu...