验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Java中的枚举怎么使用

阅读:441 来源:乙速云 作者:代码code

Java中的枚举怎么使用

      枚举(enum)

      枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。

      Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割,结尾使用分号;结束

      Java中的枚举怎么使用

      定义一个季节的枚举类

      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
      }
      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
      }
       
       
      public class SeasonEnum {
       
          public static void main(String[] args) {
       
       
              System.out.println("请输入季节"+"n"+"1、春天"+"n"+"2、夏天"+"n"+"3、秋天"+"n"+"4、冬天");
              Scanner scan =new Scanner(System.in);
              int seasons= scan.nextInt();
              change(seasons);
          }
       
          private static void change(int seasons) {
              Season season=Season.spring;
              switch (seasons){
                  case 1:
                      season=Season.spring;
       
                      break;
                  case 2:
                      season=Season.summer;
                      break;
                  case 3:
                      season=Season.autumn;
                      break;
                  case 4:
                      season=Season.winter;
                      break;
              }
              System.out.println(season);
          }
      }

      枚举类

      enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口。

      values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:

      • values() 返回枚举类中所有的值。

      • ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。

      • valueOf()方法返回指定字符串值的枚举常量。

      values()方法

       values( ) 方法可以将枚举的所有成员以数组形式返回,也可以通过该方法获取枚举类型的成员。

      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
      }
       
      }
       
       
      public class SeasonEnum {
         public static void main(String[] args) {
      //        迭代季节
              for (Season season : Season.values()) {
                  System.out.println(season);
              }
         }
      }

      结果:

      Java中的枚举怎么使用

      ordinal()方法

       ordinal() 方法可以获取一个成员在枚举中的索引位置。下面的示例创建一个包含 3 个成员的枚举类型 Signal,然后调用 ordinal() 方法输出成员及对应索引位置。

      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
      }
       
      }
       
       
      public class SeasonEnum {
         public static void main(String[] args) {
      //        迭代季节
              for (Season season : Season.values()) {
      //            ordinal可以找到每个枚举常量的索引,就像数组索引一样。
                  System.out.println(season+"  索引为  "+season.ordinal());
              }
         }
      }

      结果:

      Java中的枚举怎么使用

       valueOf()方法

      valueOf()方法返回指定字符串值的枚举常量

      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
      }
       
      }
       
       
      public class SeasonEnum {
         public static void main(String[] args) {
       
      //        使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
               System.out.println(Season.valueOf("summer"));
         //    System.out.println(Season.valueOf("summ"));
         }
      }

      结果

      Java中的枚举怎么使用

      枚举类成员

      枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。

      枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

      enum Season{
          spring,summer,autumn,winter;
      //   常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰
           
          //    构造方法
          private Season(){
              System.out.println("Constructor called for :" +this.toString());
          }
       
          public void SeasonInfo(){
              System.out.println("spring");
          }
       
      }
       
      }
       
       
      public class SeasonEnum {
         public static void main(String[] args) {
       
               Season season=Season.spring;
               season.SeasonInfo();
         }
      }
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>