java的枚举

来源:互联网 发布:强制写作软件 编辑:程序博客网 时间:2024/05/29 03:21

一.枚举的理解
1.限制类的对象,如个数,值不能更改,等。

二.class模拟枚举类
class ClassEnumPerson.java

package com.tiglle.enum1;public class ClassEnumPerson {    //私有属性    private String name;    private String sex;    //私有化构造方法,让类不能产生新对象    private ClassEnumPerson(String name,String sex){        this.name = name;        this.sex = sex;    }    //只设置取值方法,让属性值不能被改变    public String getName() {        return name;    }    public String getDesc() {        return sex;    }    //提供类的对象    public static final ClassEnumPerson XIAOMING = new ClassEnumPerson("小明","男");    public static final ClassEnumPerson XIAOHONG = new ClassEnumPerson("小红","女");    public static final ClassEnumPerson XIAOHUA = new ClassEnumPerson("小花","女");    public static final ClassEnumPerson XIAOGANG = new ClassEnumPerson("小刚","男");}

三.枚举的定义
enum EnumPerson.java

package com.tiglle.enum1;public enum EnumPerson {    //枚举类的所有实例都必须在第一行声明    //等于public static final ClassEnumPerson XIAOMING = new ClassEnumPerson("小明","男");    XIAOMING("小明","男"),//隐示调用了下面的构造方法    //等于public static final ClassEnumPerson XIAOHONG = new ClassEnumPerson("小红","女");    XIAOHONG("小红","女"),//隐示调用了下面的构造方法    //等于public static final ClassEnumPerson XIAOHUA = new ClassEnumPerson("小花","女");    XIAOHUA("小花","女"),//隐示调用了下面的构造方法    //等于public static final ClassEnumPerson XIAOGANG = new ClassEnumPerson("小刚","男");    XIAOGANG("小刚","男");//隐示调用了下面的构造方法    private String name;    private String sex;    //枚举构造方法必须私有化    private EnumPerson(String name,String sex){        this.name = name;        this.sex = sex;    }    //只有取值方法    public String getName() {        return name;    }    public String getSex() {        return sex;    }}

四.枚举类的使用
main方法
1.普通使用

//获取对象EnumPerson e = EnumPerson.XIAOMING;System.out.println(e.getName());//直接获取值String name = EnumPerson.XIAOGANG.getName();System.out.println(name);

2.switch中使用

        switch(e){            case XIAOMING:                System.out.println(e.getName());                break;            case XIAOHONG:                System.out.println(e.getName());                break;            case XIAOHUA:                System.out.println(e.getName());                break;            case XIAOGANG:                System.out.println(e.getName());                break;            default:                System.out.println(e.getName());                break;        }
0 0
原创粉丝点击