黑马程序员_java基础知识(5)枚举的简单理解

------- android培训java培训、期待与您交流! ----------

通过张孝祥老师的详细讲解,和自己的总结,本人对于枚举有了一定的初步认识.

一,为什么需要枚举

一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决

二, 创建枚举格式:

enum 枚举类型名称 {

枚举对象1名称,

枚举对象2名称,

 … ,

枚举对象n名称;

}

三,实例(简单)

public classEmployee {

    private int id;

    private String name;

    //最早

    private int role1;

    //早些

    private Role2 role2;

    //现在,枚举

    private Role3 role3;

    public void demo1(){

       Employeeemp=newEmployee();

       emp.id=1;

       emp.name="张三";

       //emp.role1=Role1.BOSS;//可读性还不错,但是这种写法不好.别人调用方法时可以任意传值

       //emp.role2=Role2.Boss;//可读性没问题,构造函数私有

       emp.role3=Role3.BOSS;

    }

}

 

//定义一个类,在这个类中定义一些静态的常量,代表某一些值

class Role1{

    public static final  int BOSS=1;

    public static final  int MANAGER=2;

    public static final  int HR=3;

    public static final  int WOEKER=4;

}

//静态实例对象

class Role2{

    private Role2(){}

    public static final Role2 Boss= new Role2();

    public static final Role2 MANAGER= new Role2();

    public static final Role2 HR= new Role2();

    public static final Role2 WOEKER= new Role2();

}

//写法简单,与写法二等价

enum Role3{

    BOSS,MANAGER,HR,WORKER;

}

四,枚举的特性

枚举类具有如下特性:

枚举类也是一种特殊形式的Java类。

枚举类中声明的每一个枚举值代表枚举类的一个实例对象。

与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解,为确保取值的范围固定,而别人不能创建行的对象)。

枚举类也可以实现接口、或继承抽象类。

JDK5中扩展了swith语句,它除了可以接收int,byte, char, short外,还可以接收一个枚举类型。

若枚举类只有一个枚举值,则可以当作单态设计模式使用

五,枚举中带参数的构造方法

//带参数的构造方法

enum Color{

    RED("红色"),BIUE("蓝色"),BLACK("黑色");

    private Color(String name){//构造方法必须在实例对象下面

       System.out.println(name);

    }

}

注意:如果有抽象方法,需要在实例上把抽象方法实现.

六,枚举的API

Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:

name() 返回枚举对象名称

ordinal() 返回枚举对象下标

valueof(Class enumClass, String name) 转换枚举对象

自定义的枚举类在编译阶段自动生成下面方法

valueof(String name)  转换枚举对象

values() 获得所有枚举对象数组

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值