枚举[java基础]

什么是枚举

  1. 常理上的枚举
    有限的确定的常量集合

  2. java中的枚举
    A. 在JDK5中引入的枚举解决了之前通过常量来表示离散量所带来的问题,
    大大加强了程序的可读性、易用性和可维护性,
    B. 在此基础之上又进行了扩展,使之可以像类一样去使用,更是为Java对离散量的表
    示上升了一个台阶。
    C. 因此,如果在Java中需要表示诸如颜色、方式、类别、状态等等数目有限、形式离散、
    表达又极为明确的量,应当尽量舍弃常量表示的做法,而将枚举作为首要的选择。
    D. 枚举的值是枚举的实例对象。例如:单例设计模式,其实现方法有一种就是使用的枚举。

    public enum Singleton {  
        INSTANCE;  
        public void whateverMethod() {  
        }  
    }
    
  3. 枚举的类层级结构
    Enum

package com.dzh.javaclassdemo.em;

/**
 * 枚举
 * [java基础]
 *
 * @author Jack Dzh
 * @date 2021-09-16 21:17
 */
public enum TypeEnum {
    /**
     * public static final flied
     */
    LOW,
    MIDDLE,
    HIGH;

    /**
     * private method
     */
    TypeEnum() {

    }


	/*
	  1.枚举与普通类的区别【重点】
	    I.每个枚举常量是用逗号分隔,最后用分号;
	    II.枚举值是有顺序的;
	    III.枚举的构造方法默认私有,每个枚举值实际上是枚举类的不可更改的实例;
	    VI.默认继承Enum抽象类;
	  2.枚举的意义【重点】
	    a:在JDK5中新引入的枚举完美地解决了之前通过常量来表示离散量所带来的问题,大大加强了程序的可读性、易用性和可维护性,
	    并且在此基础之上又进行了扩展,使之可以像类一样去使用,更是为Java对离散量的表示上升了一个台阶。因此,
	    如果在Java中需要表示诸如颜色、方式、类别、状态等等数目有限、形式离散、表达又极为明确的量,应当尽量舍弃常量表示的做法,
	    而将枚举作为首要的选择
	    b:枚举的出现解决了常量类所表示的单一信息
	  3.enum与Enum类
	    enum 是定义枚举时的关键字;
	    Enum 是枚举类默认继承的抽象类,它有name,ordinal字段和一些枚举常用的方法;
	  4.Enum 的常用方法
	    7个【重点】
	  5.参考资料[转载]
	    a: 网站
	    a.1: www.cnblogs.com/jsll/p/11613032.html
	    a.2: www.cnblogs.com/tonney/archive/2011/04/28/2032270.html
	    a.3: www.cnblogs.com/tonney/archive/2011/04/29/2032434.html
	 */
    public static void main(String[] args) {

        /**
         * Enum抽象类中的 fileds
         */
        final String name;
        final int ordinal;
        
        /**
         * Enum抽象类中的 method: name()
         */
        System.out.println(TypeEnum.HIGH.name());

        /**
         * Enum抽象类中的 method: ordinal()
         */
        System.out.println(TypeEnum.LOW.ordinal());
        System.out.println(TypeEnum.MIDDLE.ordinal());
        System.out.println(TypeEnum.HIGH.ordinal());

        /**
         * Enum抽象类中的 method: toStirng()
         */
        System.out.println(TypeEnum.LOW.toString());

        /**
         * Enum抽象类中的method: equals(Object other)
         */
        System.out.println(TypeEnum.LOW.equals(TypeEnum.LOW));

        /**
         * Enum抽象类中的method: compareTo
         * 比较他们的ordinal
         */
        int i = TypeEnum.HIGH.compareTo(TypeEnum.LOW);
        System.out.println("---------------- " + i);

        /**
         * Enum抽象类中的method: getDeclaringClass()
         */
        System.out.println(TypeEnum.LOW.getDeclaringClass());

        /**
         * Enum抽象类中的method: valueOf(Class<T> enumType,String name)
         */
        System.out.println(TypeEnum.HIGH.valueOf(TypeEnum.class, "HIGH"));

    }
    /*
    	控制台输出结果:
    	HIGH
		0
		1
		2
		LOW
		true
		---------------- 2
		class com.dzh.javaclassdemo.em.TypeEnum
		HIGH (注意:控制台输出的是它,看起来跟字符串输出一样,但是事实上valueOf方法返回的是Enum对象)
    */
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值