疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

JavaSE枚举类学习笔记


 

   

  △单例类是指只有一个实例,而枚举类实际上就是有有限个实例的类,在类里已经把实例定义好了。

  △枚举类的三种创建形式:

  1)

  enum Week {

  MON,TUE,WED;//枚举类有默认构造函数创建的三个实例}

  }

  2)

  复制代码

  enum Week {

  MON("星期一"), TUE( "星期二"),WED ("星期三" ); //具有参数的构造函数

  private String name;

  Week(String name) {

  this. name= name;

  }

  }

  复制代码

  3)

  复制代码

  enum Week {

  MON("星期一") {

  public void show() { //采用枚举类的匿名子类

  System. out.println( "星期一到啦!" );

  }

  },TUE("星期二"){

  public void show() {

  System. out.println( "星期二到啦!" );

  }

  },WED("星期三") {

  public void show() {

  System. out.println( "星期三到啦!" );

  }

  }; //具有参数的构造函数

  private String name;

  Week(String name) {

  this. name= name;

  }

  public abstract void show(); //具有抽象方法

  }

  复制代码

  △枚举类的注意事项:

  * 定义枚举类要用关键字enum

  * 所有枚举类都是Enum的子类

  * 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略

  * 枚举类可以有构造器,但必须是private的,它默认的也是private的。

  * 枚举类也可以有抽象方法,但是枚举项必须重写该方法

  * 枚举在switch语句中的使用:可以对枚举类的成员进行枚举,case里直接写成员变量名即可,使用方法如下:

  复制代码

  public class Demo {

  public static void main(String[] args) {

  Name name=Name. xuanyunyun;

  switch( name) {

  case xuanyunyun:

  System. out.println( "我是宣云云" );

  break;

  case hulonghai:

  System. out.println( "我是胡龙海" );

  break;

  case xieran:

  System. out.println( "我是谢冉");

  break;

  }

  }

  }

  enum Name{

  xuanyunyun, hulonghai, xieran;

  }

  复制代码

  *可以根据输入获取相应的枚举常量名获取枚举对象,采用的是枚举的valueOf方法

  static Enum valueOf(Class enumclass,String name):返回指定名字给定类的枚举常量