ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java枚举简单介绍 [打印本页]

作者: 大号在练葵花宝典    时间: 2022-9-16 17:24
标题: Java枚举简单介绍
枚举

1、枚举简介

枚举,是java中的一种比较特殊的class,它继承了java.lang.Enum类,也就是说在枚举类中是不能够继承其他类的。枚举类型可以取代以往常量的定义方式,即将常量封装在类或接口中。此外,枚举类型还提供了安全检查功能。枚举类型本质上还是以类的形式存在
以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static
  1. public interface Color
  2. {
  3.         public static final int RED = 1;
  4.         public static final int GREEN = 2;
  5.     public static final int BLUE = 3;
  6. }
复制代码
使用枚举定义常量的语法如下:
  1. public enum ColorEnum
  2. {
  3.         RED,
  4.         GREEN,
  5.     BLUE,
  6. }
复制代码
常量声明 会有一些问题,比如
命名规范:
final常量:使用大写字母命名,并且中间使用下划线进行连接。
enum枚举:使用大写字母命名,并且中间使用下划线进行连接。
  1. public static void doit(ColorEnum c)
  2. {
  3.         switch (c)
  4.         {
  5.                 case RED:
  6.                         System.out.println("This is RED");
  7.                         break;
  8.                 case BLUE:
  9.             System.out.println("This is GREEN");
  10.                         break;
  11.                 case GREEN:
  12.                         System.out.println("This is BLUE");
  13.                         break;
  14.                 default:
  15.                         break;
  16.         }
  17. }
  18. public static void main(String[] args)
  19. {
  20.         doit(ColorEnum.RED);
  21. }
复制代码
2 、操作枚举类型成员的方法

方法名称具体含义使用方法values()该方法可以将枚举类型成员以数组的形式返回枚举类型名称.values()valueOf()该方法可以实现将普通字符串转换为枚举实例枚举类型名称.valueOf("ABC")compareTo()该方法用于比较两个枚举对象在定义时的顺序枚举对象.compareTo()ordinal()该方法用于得到枚举成员的位置索引枚举对象.ordinal()(1)values()方法

该方法可以将枚举类型成员以数组的形式返回,也可以通过该方法获取枚举类型的成员。
  1. /**
  2. * @Author IBing
  3. * @Date 2022/8/5 21:17
  4. * @Version 1.0
  5. */
  6. public class showEnum {
  7.     enum ColorEnum{
  8.         RED,
  9.         BLUE,
  10.         GREEN,
  11.         YELLOW
  12.     }
  13.         public static void main(String[] args) {
  14.         System.out.println("枚举成员有:"+Arrays.toString(ColorEnum.values()));
  15.         System.out.println("=================================");
  16.         for (ColorEnum c: ColorEnum.values()) {
  17.             System.out.println("枚举成员:"+c);
  18.         }
  19.     }
  20. }
复制代码
执行结果:

(2)valueOf()与compareTo()方法
  1. /**
  2. * 枚举中valueOf()与compareTo()方法的使用
  3. * @author pan_junbiao
  4. */
  5. public class EnumMethodTest
  6. {
  7.     enum ColorEnum
  8.     {
  9.         RED, BLUE, GREEN
  10.     }
  11.     // 定义比较枚举类型方法,参数类型为枚举类型
  12.     public static void compare(ColorEnum c)
  13.     {
  14.         // 根据values()方法返回的数组做循环操作
  15.         for (int i = 0; i < ColorEnum.values().length; i++)
  16.         {
  17.             // 将比较结果返回
  18.             System.out.println(c + "与" + ColorEnum.values()[i] + "的比较结果为:" + c.compareTo(ColorEnum.values()[i]));
  19.         }
  20.     }
  21.     public static void main(String[] args)
  22.     {
  23.         // 使用valueOf()将字符串转换为枚举实例
  24.         ColorEnum c = ColorEnum.valueOf("BLUE");
  25.         compare(c);
  26.     }
  27. }
复制代码
执行结果:

说明:调用compareTo()方法返回的结果,正值代表方法中的参数在调用该方法的枚举对象位置之前;0代表两个相互比较的枚举成员的位置相同;负值代表方法中参数在调用该方法的枚举对象位置之后。
(3)ordinal()方法

该方法用于得到枚举成员的位置索引。
  1. public class showEnum {
  2.     enum ColorEnum{
  3.         RED,
  4.         BLUE,
  5.         GREEN,
  6.         YELLOW
  7.     }
  8.     public static void main(String[] args) {
  9.         for (ColorEnum c: ColorEnum.values()) {
  10.             System.out.println("枚举成员 "+ c+" 的位置索引为:"+c.ordinal());
  11.         }
  12.     }
复制代码
执行结果:

3、使用枚举类型的优势

枚举类型声明提供了一种用户友好的变量定义方法,枚举了某种数据类型所有可能出现的值。总结枚举类型,它具有以下特点:
(1)类型安全。
(2)紧凑有效的数据定义。
(3)可以和程序其他部分完美交互。
(4)运行效率高

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4