zoukankan      html  css  js  c++  java
  • Java(4)枚举类

    @

    一、枚举类简介

    1. 类的对象确定且有限,就成为枚举类。
    2. 当需要定义一组常量时,使用枚举类。
    3. 如果枚举类只有一个对象,则可以作为单例模式的实现方式

    二、自定义枚举类

    1、方式一:jdk5.0之前,自定义枚举类

    1. 代码实现

      class Season{
          //1.属性要定义为 private final的
          private final String seasonName;
          private final String seasonDesc;
      
          //2.构造器私有化(因为属性是final的,所以要在构造器中初始化)
          private Season(String seasonName, String seasonDesc){
              this.seasonName = seasonName;
              this.seasonDesc = seasonDesc;
          }
      
          //3. 提供当前枚举类的几个对象,并声明为public static final
          public static final Season SPRING = new Season("春天","我是春天");
          public static final Season SUMMER = new Season("夏天","我是夏天");
          public static final Season AUTUMN = new Season("秋天","我是秋天");
          public static final Season WINTER = new Season("冬天","我是冬天");
      }
      

    2、方式二:jdk5.0,用enum关键字定义枚举类

    1. 代码实现

      enum Season1{
                  //1.提供枚举类的对象
                  SPRING("春天","我是春天"),
                  SUMMER("夏天","我是夏天"),
                  AUTUMN("秋天","我是秋天"),
                  WINTER("冬天","我是冬天");
      
      
                  //2.定义属性,声明为private final
                  private final String seasonName;
                  private final String seasonDesc;
      
                  //3.私有化构造器,并给对象赋值
                  private Season1(String seasonName, String seasonDesc){
                      this.seasonName = seasonName;
                      this.seasonDesc = seasonDesc;
                  }
      
                  //4.额外需求:get()方法
      
                  public String getSeasonName() {
                      return seasonName;
                  }
      
                  public String getSeasonDesc() {
                      return seasonDesc;
                  }
      }
      
    2. 说明

      1. 枚举类的对象在第一行声明,用逗号分隔,分号结尾。不用自己加 public static final,因为系统会自动添加。也不用加new + 构造器来创建。
      2. enum定义的枚举类默认继承 java.lang.Enum类,因此不能再继承其他类。可以通过

    三、Enum类的主要方法

    1、toString()

    1. 返回当前枚举类对象的名字。
    2. 默认输出对象和调用toString是一样效果

    2、values()

    1. 静态方法
    2. 返回枚举类型的对象数组,可以方便的遍历所有枚举值。

    3、valueOf(String str)

    1. 静态方法
    2. 把一个字符串转换为对应的枚举类对象。
    3. 名字必须一致,否则会出异常: IllegalArgumentException: No enum constant com.lzx.java.Season1.spring

    四、使用enum关键字定义的枚举类去实现接口

    1、情况一

    • 实现接口,在enum类中实现抽象方法即可

    2、情况二:

    • 每个对象分别去实现抽象方法,则不同的对象调用各自实现的抽象方法。
  • 相关阅读:
    cpp 模版函数
    叉积
    利用scrollTop 制作图片无缝滚动
    事件绑定和时间取消
    闭包写法
    增加类,删除类,查找类
    获取元素到页面上的位置
    在IE8中如何通过javascripts改变<style />中的内容?
    有关app的一些小知识
    获取页面高宽知识
  • 原文地址:https://www.cnblogs.com/liuzhixian666/p/14008346.html
Copyright © 2011-2022 走看看