(黑马程序员)学习笔记,枚举

来源:互联网 发布:从零开始学mt4编程 编辑:程序博客网 时间:2024/04/23 22:09

来看一下java中新加入的枚举都有哪些特点:

package HeiMa;import org.junit.Test;public class Heima_01 {@Test//测试交通灯枚举public void testLight(){//比如当前是红灯,获取下一个灯String nextLight = Light.GREEN.getNext();System.out.println(nextLight);Light2 nextLight2 = Light2.GREEN.getNext();System.out.println(nextLight);}@Test//简单的枚举测试public void testWeekDay(){WeekDay w = WeekDay.FRI;System.out.println(w);System.out.println(w.name());System.out.println(w.ordinal());System.out.println(w.toString());System.out.println(w.valueOf("SUN").toString());System.out.println(w.values().length);}}/* * 简单的枚举 * 用于规定某个类型的取值,只能为若干个固定值中的一个,否则编译出错 *  * 1. 私有的构造方法 * 2. 每个元素都是一个公有的静态成员变量 * 3. 可以有抽象方法或公有方法 */enum WeekDay{SUN,MON,TUE,WED,THI,FRI,SAT;//枚举的构造方法必须私有private WeekDay(){}private WeekDay(int day){}}/* * 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法; * 如:红灯的下一个灯是绿灯,绿灯的下一个灯是黄灯 */enum Light{//枚举的元素后边跟着的()中的内容,表明会调用private Light(String s){}构造方法RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");private String s;//这里参数String s,就是枚举元素的()中的内容private Light(String s){this.s = s;}public String getValue(){return this.toString();}public String getNext(){return this.s;}}/* * 交通灯枚举也可以这样定义 */enum Light2{//枚举的元素后边用{}中的内容,实现定义的抽象方法RED{public Light2 getNext(){return GREEN;}},GREEN{public Light2 getNext(){return YELLOW;}},YELLOW{public Light2 getNext(){return RED;}};private Light2(){}//这里定义一个抽象方法,用于获取下一个灯public abstract Light2 getNext();}


0 0