码迷,mamicode.com
首页 > 编程语言 > 详细

二、Java面向对象(18)_枚举

时间:2018-05-12 14:23:45      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:[]   面向对象   16px   部分   单例设计   查看   固定   char   value   

2018-05-12

 

枚举

 

一、枚举的定义以及底层分析特点

  JDK1.5引入了新的数据类型——枚举,是一个特殊的类。就是固定的多个对象的集合。

  定义格式:

  [修饰符] enum 枚举类名{

    常量A,常量B,常量C;

  }

我们自定义的枚举类型,在编译(底层)都是直接继承于java.liang.Enum类,Enum是所有枚举的父类。

 

  枚举类的特点:

  1、枚举的直接父类java.liang.Enum,但不能显示继承Enum。

  2、枚举就相当于一个类,可以定义构造方法、成员变量、普通方法和抽象方法。

  3、默认私有的构造方法。

  4、每个实例分别用全局常量表示,枚举类的对象是固定的,实例个数有限,不能使用new来创建。

  5、枚举实例必须位于枚举体中最开始的部分,枚举实例列表后要有分号和其他成员变量相分隔。

  6、枚举实例后有花括号时,该实例是匿名内部类的对象(查看编译后的class文件)。

----------------------------------------------------------------------------------------------------------------------

 

二、枚举的使用

  1、枚举中都是全局静态常量,所以可以使用枚举类名调用。

    Weekday day = Weekday.MONDAY;

  2、因为java.liang.Enum类是所有枚举类的父类,所以所有的枚举对象可以调用Enum类中的方法。

    String name = 枚举对象.name();//返回枚举对象的常量名称

    int ordinal = 枚举对象.ordinal();//返回枚举对象的序号,从0开始

  3、编译器生成的枚举类的静态方法

    枚举类型[ ] values();

    Weekday[] ws = Weekday.values();//返回当前枚举类型的所有常量,使用一个数组封装起来。

  4、switch也支持操作枚举类型

    JDK1.6之前的switch语句只支持int,char,enum类型,支持枚举是因为底层使用的是枚举对象的ordinal,而ordinal的类型是int类型

  5、枚举的单例设计模式

 

参考:http://softbeta.iteye.com/blog/1185573

 

二、Java面向对象(18)_枚举

标签:[]   面向对象   16px   部分   单例设计   查看   固定   char   value   

原文地址:https://www.cnblogs.com/sunNoI/p/9028520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!