枚举

来源:互联网 发布:温州网络问政 编辑:程序博客网 时间:2024/06/16 00:56
//枚举类 : People.woman 等价于new People().womanpublic enum People {    //woman, man;等价于如下    //public static final People2 woman=new People2();    //public static final People2 man=new People2();    woman, man;}
public enum People2 {    //woman("女"), man("男");等价于如下    //public static final People2 woman=new People2("女");    //public static final People2 man=new People2("男");    woman("女"), man("男");    private String name;    private People2(String name) {        this.name = name;    }    public String getName() {        return name;    }}
public enum People3 {    /*     *  woman("女") {        @Override        public void show() {            System.out.println("女");        }    },    等价于    public static final People3 woman = new People3("女") {        @Override        public void show() {            System.out.println("女");        }    };     */    woman("女") {        @Override        public void show() {            System.out.println("女");        }    },    man("男") {        @Override        public void show() {            System.out.println("男");        }    };    private String name;    private People3(String name) {        this.name = name;    }    public String getName() {        return name;    }    public abstract void show();}

测试:

public class Test {    public static void main(String[] args) {        System.out.println("------People-------");        People p = People.woman;        System.out.println(p); // woman        // public String toString()返回枚举常量的名称,它包含在声明中。        System.out.println("------People2-------");        People2 p2 = People2.woman;        System.out.println(p2);        System.out.println(p2.getName());        System.out.println("------People3-------");        People3 p3 = People3.woman;        System.out.println(p3);        System.out.println(p3.getName());        p3.show();        System.out.println("-----People3-switch--------");        People3 p32 = People3.woman;        System.out.println(p32);        switch (p32) {        case woman:            System.out.println("woman");            break;        case man:            System.out.println("man");            break;        }        People2 p21 = People2.woman;        People2 p22 = People2.man;        System.out.println("------ordinal 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零--------");        // int ordinal()        System.out.println(p21.ordinal());        System.out.println(p22.ordinal());        System.out.println("------compareTo(E o)比较此枚举与指定对象的顺序。---");        System.out.println(p21.compareTo(p22));        System.out.println("-------name 返回此枚举常量的名称--------");        // String name()        System.out.println(p21.name());        System.out.println(p22.name());        System.out.println("--------toString------");        // String toString()        System.out.println(p21.toString());        System.out.println(p22.toString());        System.out.println("-------valueOf回带指定名称的指定枚举类型的枚举常量-------");        // <T> T valueOf(Class<T> type,String name)        People2 p223 = Enum.valueOf(People2.class, "woman");        System.out.println(p223.getName());        System.out.println("------values()----------");        // values()        //遍历枚举类的所有枚举值        People2[] pirs = People2.values();        for (People2 p224 : pirs) {            System.out.println(p224+"--------"+p224.getName());        }    }}输出:------People-------woman------People2-------woman女------People3-------woman女女-----People3-switch--------womanwoman------ordinal 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零--------01------compareTo(E o)比较此枚举与指定对象的顺序。----1-------name 返回此枚举常量的名称--------womanman--------toString------womanman-------valueOf回带指定名称的指定枚举类型的枚举常量-------女------values()----------woman--------女man--------男
0 0
原创粉丝点击