zoukankan      html  css  js  c++  java
  • Java基础--枚举

    1.枚举简介

    枚举是由一组固定的常量组成的类型,自定义数据类型。

    枚举的常量值一定是可列举的有限值。常量值的类型都是public static final

    下面代码中的Gender 是一种自定义的数据类型,可以用于声明变量,且变量的取值必须是枚举值的其中一个。gender的值必须是男或者女或者保密。

    1 public enum Gender {
    2     男,
    3     女,
    4     保密;
    5 }
    1 public static void main(String[] args) {
    2         
    3         // 声明一个Gender枚举类型的变量gender,并取值为男
    4         Gender gender = Gender.男;
    5     }

    java中所有的枚举类型都继承于Enum类。可以把枚举类型看出一个类。

     1 public class Student {
     2 
     3     private String name;
     4     private int age;
     5     private Gender gender;
     6 
     7     public String getName() {
     8         return name;
     9     }
    10 
    11     public void setName(String name) {
    12         this.name = name;
    13     }
    14 
    15     public int getAge() {
    16         return age;
    17     }
    18 
    19     public void setAge(int age) {
    20         this.age = age;
    21     }
    22 
    23     public Gender getGender() {
    24         return gender;
    25     }
    26 
    27     public void setGender(Gender gender) {
    28         this.gender = gender;
    29     }
    30 
    31     public Student(String name, int age, Gender gender) {
    32         super();
    33         this.name = name;
    34         this.age = age;
    35         this.gender = gender;
    36     }
    37 
    38     public Student() {
    39         super();
    40     }
    41 
    42     @Override
    43     public String toString() {
    44         return "Student [name=" + name + ", age=" + age + ", gender=" + gender + "]";
    45     }
    46 
    47 }
    48 
    49 // class Gender extends Enum{}
    50 enum Gender {
    51     男, 女, 保密;
    52 }

     2.枚举和字符串转化

     1 public static void main(String[] args) {
     2         
     3         // 声明一个Gender枚举类型的变量gender,并取值为男
     4         Gender gender = Gender.男;
     5         
     6         
     7         // 枚举值->字符串
     8         System.out.println(gender.toString());
     9         
    10         // 字符串串-> 枚举值
    11         String str = "保密";
    12         // 可能产生IllegalArgumentException 非法参数异常
    13         Gender gender2 = Enum.valueOf(Gender.class, str);
    14         System.out.println(gender2);
    15         
    16     }

     3.枚举和switch

    1 public enum Week {
    2     MONDAY,
    3     TUESDAY,
    4     WEDNESDAY,
    5     THURSDAY,
    6     FRIDAY,
    7     SATURDAY,
    8     SUNDAY;
    9 }
     1 public static void main(String[] args) {
     2         
     3         
     4         // 需求:有一个变量表示星期几,输出对于的教学安排
     5         Week week = Week.TUESDAY;
     6         switch (week) {
     7             case MONDAY:
     8             case TUESDAY:
     9             case THURSDAY:
    10             case FRIDAY:
    11             case SATURDAY:{
    12                 System.out.println("上课");
    13                 break;
    14             }
    15             case WEDNESDAY:
    16             case SUNDAY:{
    17                 System.out.println("练习");
    18                 break;
    19             }
    20         }
    21     }

    4.枚举的其他方法

    1 public static void main(String[] args) {
    2                 
    3         // 枚举变量的其他方法
    4         Week week = Week.SUNDAY;
    5         System.out.println(week.name());
    6         System.out.println(week.ordinal());
    7     }

    5.枚举总结

    [1]只能够取特定值中的一个

    [2]使用enum关键字

    [3] 所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。)

    [4]强烈建议当你需要定义一组常量时,使用枚举类型

  • 相关阅读:
    B/S实现大文件上传
    csharp实现大文件上传
    C#实现大文件上传
    h5批量下载文件
    association 的使用
    简单的MD5查询工具
    struts开发<struts中的參数传递.三>
    (转)SQL SERVER的锁机制(二)——概述(锁的兼容性与可以锁定的资源)
    (转)SQL SERVER的锁机制(一)——概述(锁的种类与范围)
    (转)SQL Server 中的事务和锁(三)-Range S-U,X-X 以及死锁
  • 原文地址:https://www.cnblogs.com/WhiperHong/p/10793053.html
Copyright © 2011-2022 走看看