15_Java枚举

15_Java枚举

枚举定义

/** * 枚举使用 enum 这个关键字来定义 */public enum Size {    // 值一般是大写的字母,多个值之间以逗号分隔  // 枚举值的定义需要放在最上面,枚举值写完之后,要以分号(; )结尾,然后才能写其他代码    SMALL(1,"S","小号"),    MEDIUM(2,"M","中号"),    LARGE(3,"L","大号");    private int id;    private String abbr;    private String title;    private Size(int id,String abbr, String title) {        this.id = id;        this.abbr = abbr;        this.title = title;    }    public int getId() {        return id;    }    public String getAbbr() {        return abbr;    }    public String getTitle() {        return title;    }    public static Size fromAbbr(String abbr){        for (Size size : Size.values()){            if(size.getAbbr().equals(abbr)){                return size;            }        }        return null;    }}

枚举常用方法

public class TestUtil {    public static void main(String[] args) {        enumTest();        onChose(Size.SMALL);        enumTestTwo();    }    public static void enumTest(){        Size sSize = Size.SMALL;        Size mSize = Size.MEDIUM;        Size lSize = Size.LARGE;        System.out.println(mSize.toString()); // toString 方法返回其字面值 MEDIUM        System.out.println(mSize.name()); // name()方法,返回值与toString()一样 MEDIUM        System.out.println(mSize.ordinal()); // ordinal()表示枚举值在声明时的顺序,从0开始        System.out.println(sSize.compareTo(lSize)); // 其实就是比较ordinal的大小        // 枚举变量可以使用equals和==进行比较,结果是一样的        System.out.println(Size.MEDIUM==mSize);        System.out.println(Size.MEDIUM.equals(mSize));                 System.out.println(Size.valueOf("LARGE").name()); // valueOf 返回字符串对应的枚举值        for (Size size : Size.values()) { // values 返回一个包括所有枚举值的数组        }    }    public static void onChose(Size size){        // 在switch语句内部,枚举值不能带枚举类型前缀,枚举值会被转换为其对应的ordinal值        switch (size) {            case SMALL:                System.out.println("chose small");                break;            case MEDIUM:                System.out.println("chose medium");            case LARGE:                System.out.println("chose large");        }    }    public static void enumTestTwo(){        Size s = Size.SMALL;        Size m = Size.MEDIUM;        Size l = Size.fromAbbr("L");        System.out.println(s.getId());        System.out.println(m.getAbbr());        System.out.println(l.getTitle());    }}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部