zoukankan      html  css  js  c++  java
  • 二、Java面向对象(18)_枚举

    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

  • 相关阅读:
    JavaScript学习——使用JS实现首页轮播图效果
    JavaScript学习——使用JS完成注册页面表单校验
    JavaScript基础
    HTML&CSS——使用DIV和CSS完成网站首页重构
    HTML&CSS——网站注册页面
    java ------------ 集合(四) Collections类
    Java ---------- 集合(三) Map接口
    java ---------- 集合(二) Set 接口和Iterator 接口
    Java ---------- 集合
    idea -------- 常用快捷键
  • 原文地址:https://www.cnblogs.com/sunNoI/p/9028520.html
Copyright © 2011-2022 走看看