您的位置:首页 > 编程语言 > Java开发

java学习笔记<十二>枚举类

2014-02-15 23:48 417 查看
当一个类的对象是有限并且固定时,在java中称作枚举类

java中用enum关键字来定义枚举类,枚举类可以实现一个或者多个接口,非抽象的枚举类默认会使用final修饰,因为枚举类不能派生出子类。枚举类的构造器只能用private修饰,枚举的所有实例必须在枚举类的第一行显示列出,否则这个枚举类不能产生实例,所有枚举类都提供一个values方法,该方法可以很快遍历所有枚举值

 enum SeasonEnum

{

     SPRING,SUMMER,FALL,WINTER;

}

public class EnumTest

{

    public void judge(SeasonEnum s)

    {

    switch(s)

    {

    case SPRING:

    System.out.println("春天");

    break;

    case SUMMER:

    System.out.println("夏天");

    break;

    case FALL:

     System.out.println("秋天");

     break;

    case WINTER:

      System.out.println("冬天");

      break;

   

   

    }

    }

   public static void main(String[] args)

   {
  for(SeasonEnum s:SeasonEnum.values())
  {
  System.out.println(s);
  
  }
  new EnumTest().judge(SeasonEnum.SPRING);
  

   }

}

枚举类的field,构造器和方法

enum Gender

{

  MALE("男"),FEALE("女");

  private final String name;

  private Gender(String name)

  {

4000
 this.name=name;
 

  }

 

  public String getName()

  {
  return this.name;
 

  }

}

实现接口的枚举类

枚举类也可以实现一个或者多个接口,枚举类实现一个接口时也需要实现该接口包含的的方法

包含抽象方法的枚举类

enum Operation

{

  PLUS

  {
 public double eval(double x,double y)
 {
 
 return x+y;
 }
 

  },

  MINUS

  {
 public double eval(double x,double y)
 {
 
 return x-y;
 }
 

  },

  TIMES

  {
 public double eval(double x,double y)
 {
 return x*y;
 
 }
 

  },

 DIVIDE

 {
 public double eval(double x,double y)
 {
return x/y; 
 
 }
 

 };

public abstract double eval(double x,double y);

public static void main(String[] args)

{

  System.out.println(Operation.PLUS.eval(3, 4));

  System.out.println(Operation.MINUS.eval(5, 4));

  System.out.println(Operation.TIMES.eval(5, 4));

  System.out.println(Operation.DIVIDE.eval(5, 4));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐