0


Java语言程序设计——篇九(2)

在这里插入图片描述

     🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

枚举类型

枚举类型的定义

[修饰符]enum 枚举类型名
  {[publicstaticfinal]枚举成员;//只能写在第一行
    其他成员;
    [private]构造方法
    方法
  }
  • 修饰符可以是public、private、internal
  • 枚举类型名有两层含义:一是作为枚举名使用;二是表示枚举成员的数据类型。枚举成员也称为枚举实例或枚举对象。
  • 枚举默认继承自java.lang.Enum类。
  • 创建枚举对象不能使用new( )运算符,而应直接将枚举成员赋值给枚举对象。

枚举类型的方法

  • 每个枚举类型的成员都可以看作是Enum类的实例,这些枚举成员默认被final public static修饰。
  • 访问枚举类型的成员    枚举名.枚举成员    枚举名.valueOf( 参数)
  • 因为枚举也是一种类,所以它具有与其他类几乎相同的特性,因此可以定义枚举的属性、构造方法以及方法。
  • 枚举类常用方法
    方法说明public static E[] values( )返回枚举类型的数组,包含了枚举的所有枚举成员public static E valueOf(String str)返回名称为str的枚举成员public final int compareTo (E o)返回当前枚举成员与参数枚举成员o在定义时顺序的比较结果Public final class getDeclaringClass()返回对应的枚举常量的枚举类型的类对象public final String name( )返回枚举常量的名字public final int ordinal ( )返回枚举成员在枚举中的序号(0开始)public String toString( )返回枚举成员的名称

    实战演练

【例】定义一个枚举类型,然后输出枚举成员的名称和对应的序号。

enumDirection{EAST,SOUTH,WEST,NORTH}publicclassEnumDemo{publicstaticvoidmain(String[] args){Direction dir=Direction.EAST;System.out.print(dir);for(Direction d:Direction.values())System.out.println("序号:"+d.ordinal()+" 的值为"+d.name());}}

在这里插入图片描述

枚举在switch中的应用

  • 枚举类型有一个特别实用的特性,它可以在switch语句中使用。
  • java.time.DayOfWeek是一个枚举类型,其中包括一周的7天,分别为MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY和SUNDAY,序号从0到6。
  • EnumSwitch.java程序在switch结构中使用DayOfWeek枚举。

实战演练

【例】 java.time.DayOfWeek是一个枚举类,一周7天,序号分别是0-6

importjava.time.DayOfWeek;publicclassEnumSwitch{publicstaticvoid describe (DayOfWeek day){switch(day){caseMONDAY:System.out.println("Mondays are bad.");break;caseFRIDAY:System.out.println("Fridays are better.");break;caseSATURDAY:caseSUNDAY:System.out.println("Weekends are best.");break;default:System.out.println("Midweek days are so-so.");break;}}publicstaticvoidmain(String[] args){DayOfWeek firstDay =DayOfWeek.MONDAY;
             describe (firstDay);DayOfWeek thirdDay =DayOfWeek.WEDNESDAY;
             describe (thirdDay);DayOfWeek seventhDay =DayOfWeek.SUNDAY;describe(seventhDay);}}

运行结果:
在这里插入图片描述

枚举类的构造方法

  • 枚举的构造方法只是在构造枚举实例值时被调用。每一个枚举实例值都是枚举的一个对象,因此创建每个枚举实例时都需要调用该构造方法。

实战演练

【例】 定义color枚举,包含四种颜色,声明两个private成员变量(name颜色名字、index索引)

packagecom;publicenumColor{RED("红色",1),GREEN("绿色",2),WHITE("白色",3),YELLOW("黄色",4);privateString name;privateint index;privateColor(String name,int index){this.name = name;this.index = index;}publicstaticStringgetName(int index){for(Color c :Color.values()){if(c.getIndex()== index){return c.name;}}returnnull;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicintgetIndex(){return index;}publicvoidsetIndex(int index){this.index = index;}@OverridepublicStringtoString(){returnthis.name +"_"+this.index;}publicstaticvoid main (String[] args){Color c =Color.RED;// 自动调用构造方法System.out.println(c.toString());// 输出:1-红色}}}

博主用心写,读者点关注,互动传真情,知识不迷路

标签: java 开发语言 ide

本文转载自: https://blog.csdn.net/2201_75851346/article/details/140731435
版权归原作者 倾听一世,繁花盛开 所有, 如有侵权,请联系我们删除。

“Java语言程序设计——篇九(2)”的评论:

还没有评论