Java 枚举类型

package enumered.menu;
/*
 * 在一个接口的内部,创建实现该接口的枚举,以此将元素进行分组,可以达到将枚举元素分类组织的目的。*/

public interface Food {
  enum Appetizer implements Food {
    SALAD, SOUP, SPRING_ROLLS;
  }
  enum MainCourse implements Food {
    LASAGNE, BURRITO, PAD_THAI,
    LENTILS, HUMMOUS, VINDALOO;
  }
  enum Dessert implements Food {
    TIRAMISU, GELATO, BLACK_FOREST_CAKE,
    FRUIT, CREME_CARAMEL;
  }
  enum Coffee implements Food {
    BLACK_COFFEE, DECAF_COFFEE, ESPRESSO,
    LATTE, CAPPUCCINO, TEA, HERB_TEA;
  }
} 

如果枚举类型实现了Food接口,那么我们就可以将其实例向上转型为Food,所以下面例中的所有东西都是Food。

public class TypeOfFood {
   public static void main(String[]args){
	   Food food=Appetizer.SALAD;
	   food=MainCourse.LASAGNE;
	   food=Dessert.GELATO;
	   food=Coffee.CAPPUCCINO;
   }
}
   java的enum有一个非常有趣的特性,即它允许程序员为enum实例编写方法,从而enum实例赋予各自不同的行为。
 要实现常量相关的方法,你需要为enum定义一个或者多个abstract方法。然后为每个enum实例实现该方法。
public enum ConstantSpecificMethod {
	  DATE_TIME {
	    String getInfo() {
	      return
	        DateFormat.getDateInstance().format(new Date());
	    }
	  },
	  CLASSPATH {
	    String getInfo() {
	      return System.getenv("CLASSPATH");
	    }
	  },
	  VERSION {
	    String getInfo() {
	      return System.getProperty("java.version");
	    }
	  };
	  abstract String getInfo();
	  public static void main(String[] args) {
	    for(ConstantSpecificMethod csm : values())
	      System.out.println(csm.getInfo());
	  }
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值