黑马训练营 ----------- 枚举

 

----------------------------------- android培训java培训、期待与您交流! -----------------------------------

 

public class EnumDemo {

 /**   枚举    ————1.5新特性(其他还有那些)
  * Java 5 新增,是类类型,但不能使用new 不能继承其他类,也不能作为超类,即不能扩展.但隐式继承自java.lang.Enum类,可以实现接口.
不允许继承的原因:枚举有一个特性,就是只允许内部定义枚举常量,用户是不能够实例化新的实例,如果枚举能够继承其他类的话,就可以通过父类的构造方法实例化新的实例,破坏了枚举的特性。

 

枚举能够实现接口的原因:因为接口内部是不能偶定义构造方法的,因此不会通过实现接口的方法破坏枚举的特性,



  * 1  枚举的作用:限定了某个类对象的个数
  * 2 枚举是一个类,而他的元素是对象;
  * 3 枚举只有一个成员就是单例。
  */
 public static void main(String[] args) {
  Week week = Week.SUN;
  
  System.out.println(week.ordinal());//0    该元素所在位置
  System.out.println(week.toString());
  System.out.println(week.getDeclaringClass());
  
  System.out.println(Week.valueOf("SUN"));//得到该字符串所对应的枚举元素
  System.out.println(Week.values());
  
 }
 
 /*--------------创建一个抽象的枚举类------------------*/
 public enum TrafficLamp{
  RED(20){
   @Override
   public TrafficLamp nextLamp() {
    return Green;
   }
  },
  Green(20){
   @Override
   public TrafficLamp nextLamp() {
    return YELLOW;
   }
  }, YELLOW(20){
   @Override
   public TrafficLamp nextLamp() {
    return RED;
   }
  };
  
  private int time;
  private   TrafficLamp(int time){this.time = time;}
  public abstract TrafficLamp nextLamp();
 }
 
 
 /*--------------创建一个枚举类------------------*/
 public enum Week{
  SUN, MON(), TUE(1), FRI(new String[]{"abc"});//元素列表必须在类顶部
  
  //枚举的构造方法
  private Week(){}
  
  private Week(int in){}
  
  private Week(String[] str){}
 }
}
/*-------------------模拟一个普通枚举类-------------*/
abstract class  WeekDay{
 private WeekDay(){}
 
 static  final WeekDay Sun = new WeekDay(){
 @Override
 public WeekDay nextDay() {
  return Mon;
  }
 
 };
 
 static  final WeekDay Mon = new WeekDay(){
 @Override
 public WeekDay nextDay() {
  // TODO Auto-generated method stub
  return Sun;
 }
 
 };
 
 
 public abstract WeekDay nextDay();
 
 public String toString(){
  return this == Mon ? "Sun":"Mon";
}

 

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值