java枚举使用详解

小鱼儿 2021-11-11 03:06 452阅读 0赞

java枚举使用详解

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。

例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。

在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。

复制代码

  1. package com.ljq.test;
  2. /**
  3. * 枚举用法详解
  4. *
  5. * @author jiqinlin
  6. *
  7. */
  8. public class TestEnum {
  9. /**
  10. * 普通枚举
  11. *
  12. * @author jiqinlin
  13. *
  14. */
  15. public enum ColorEnum {
  16. red, green, yellow, blue;
  17. }
  18. /**
  19. * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
  20. *
  21. * @author jiqinlin
  22. *
  23. */
  24. public enum SeasonEnum {
  25. //注:枚举写在最前面,否则编译出错
  26. spring, summer, autumn, winter;
  27. private final static String position = "test";
  28. public static SeasonEnum getSeason() {
  29. if ("test".equals(position))
  30. return spring;
  31. else
  32. return winter;
  33. }
  34. }
  35. /**
  36. * 性别
  37. *
  38. * 实现带有构造器的枚举
  39. *
  40. * @author jiqinlin
  41. *
  42. */
  43. public enum Gender{
  44. //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
  45. //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
  46. MAN("MAN"), WOMEN("WOMEN");
  47. private final String value;
  48. //构造器默认也只能是private, 从而保证构造函数只能在内部使用
  49. Gender(String value) {
  50. this.value = value;
  51. }
  52. public String getValue() {
  53. return value;
  54. }
  55. }
  56. /**
  57. * 订单状态
  58. *
  59. * 实现带有抽象方法的枚举
  60. *
  61. * @author jiqinlin
  62. *
  63. */
  64. public enum OrderState {
  65. /** 已取消 */
  66. CANCEL {public String getName(){return "已取消";}},
  67. /** 待审核 */
  68. WAITCONFIRM {public String getName(){return "待审核";}},
  69. /** 等待付款 */
  70. WAITPAYMENT {public String getName(){return "等待付款";}},
  71. /** 正在配货 */
  72. ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
  73. /** 等待发货 */
  74. WAITDELIVER {public String getName(){return "等待发货";}},
  75. /** 已发货 */
  76. DELIVERED {public String getName(){return "已发货";}},
  77. /** 已收货 */
  78. RECEIVED {public String getName(){return "已收货";}};
  79. public abstract String getName();
  80. }
  81. public static void main(String[] args) {
  82. //枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
  83. ColorEnum colorEnum = ColorEnum.blue;
  84. switch (colorEnum) {
  85. case red:
  86. System.out.println("color is red");
  87. break;
  88. case green:
  89. System.out.println("color is green");
  90. break;
  91. case yellow:
  92. System.out.println("color is yellow");
  93. break;
  94. case blue:
  95. System.out.println("color is blue");
  96. break;
  97. }
  98. //遍历枚举
  99. System.out.println("遍历ColorEnum枚举中的值");
  100. for(ColorEnum color : ColorEnum.values()){
  101. System.out.println(color);
  102. }
  103. //获取枚举的个数
  104. System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");
  105. //获取枚举的索引位置,默认从0开始
  106. System.out.println(ColorEnum.red.ordinal());//0
  107. System.out.println(ColorEnum.green.ordinal());//1
  108. System.out.println(ColorEnum.yellow.ordinal());//2
  109. System.out.println(ColorEnum.blue.ordinal());//3
  110. //枚举默认实现了java.lang.Comparable接口
  111. System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
  112. //--------------------------
  113. System.out.println("===========");
  114. System.err.println("季节为" + SeasonEnum.getSeason());
  115. //--------------
  116. System.out.println("===========");
  117. for(Gender gender : Gender.values()){
  118. System.out.println(gender.value);
  119. }
  120. //--------------
  121. System.out.println("===========");
  122. for(OrderState order : OrderState.values()){
  123. System.out.println(order.getName());
  124. }
  125. }
  126. }

转载于:https://www.cnblogs.com/wshsdlau/p/4162237.html

发表评论

表情:
评论列表 (有 0 条评论,452人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java类型使用详解

    在Java中,枚举类型(Enumeration)是一种特殊的数据类型,它允许程序员定义一个有限的、可枚举的数据集。枚举类型的定义通常在类的内部,在类的外部使用。 以下是一些关

    相关 java使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据

    相关 java使用详解

     在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬

    相关 Java介绍及使用详解

    在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据

    相关 Java 详解

    在博客系统中,一篇文章有且可能有这几种状态, 数据库中`article`文章表中`state`字段存储数值,表示其状态: 0(已发表Published) 1(

    相关 java使用详解

    [java枚举使用详解][java] 在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据