黑马程序员Java高新__枚举

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------



一、枚举

一、概述:

1、通过enum定义枚举类,枚举类是一个特殊的类,每个元素都是该类的一个实例对象。

2、用枚举类规定值,以后用此类型定义的值只能是这个类中规定好的那些值,若不是这些值,编译器不会通过。

3、如果调用者想打印枚举类中元素的信息,需由编写此类的人定义toString方法。

4、采用抽象方法定义的nextDay可将大量的if else语句转换成了一个个独立的类。

5、如果想在一个类中编写完每个枚举类和测试调用类,那么可将枚举类定义成调用类的内部类。    

示例:

package cn.itcast.day01;  
public abstract class WeekDay1 {  
 private WeekDay1(){};  
 public final static WeekDay1 Mon=new WeekDay1(){  
  
  @Override  
  public WeekDay1 nexDay() {  
   // TODO Auto-generated method stub  
   return Tue;  
  }};  
  
 public final static WeekDay1 Tue=new WeekDay1(){  
  
  @Override  
  public WeekDay1 nexDay() {  
   // TODO Auto-generated method stub  
   return Mon;  
  }};  
  
// public WeekDay nexDay(){  
//  if(this==Mon){  
//   return Tue;  
//  }else{  
//   return Mon;  
//  }  
//  
// }  
   
 public abstract WeekDay1 nexDay();  
   
 public String toString(){  
  return this==Mon?"Mon":"Tue";  
 }  
}  


二、枚举的基本应用


示例:定义一个Weekday的枚举。

public class EnumText {  
    public static void main(String[] args) {  
        WeekDayTest weekDay = WeekDayTest.MON;    
        System.out.println(weekDay.nextDay());    
          
        WeekDay weekDay2 = WeekDay.FRI;  
        System.out.println("获取此对象:" + weekDay2);  
        System.out.println("获取对象名称:" + weekDay2.name());  
        System.out.println("获取排行:" + weekDay2.ordinal());  
        System.out.println("获取类名:" + weekDay2.getClass());  
        //静态方法:   
        System.out.println("通过字符串获取对象:"+WeekDay.valueOf("SUN"));  
        System.out.println("将元素存入数组:"+WeekDay.values().length);  
          
    }


示例:定义星期枚举类。

  public enum WeekDay{  
        SUN(1),MON,TUE,WED,THI,FRI,SAT;  
        private WeekDay(){  
            System.out.println("first");  
        }  
        private WeekDay(int x){  
            System.out.println("second");  
        }  
    }  

示例:定义交通灯。
 public enum TrafficLamp{  
        SUN(1),MON,TUE,WED,THI,FRI,SAT;  
        private WeekDay(){  
            System.out.println("first");  
        }  
        private WeekDay(int x){  
            System.out.println("second");  
        }  
    }  


三、方法


一)常用方法:

1)toString() :回枚举量的名称。

2)ordina() : 返回枚举值在枚举类中的顺序,按定义的顺序排。

3)getClass() :获取对应的类名。

二)静态方法:

1)valueOf(String e) : 转为类中对应的对象,即将字符串转为对象。

2)values() :获取数组,将元素放入一个数组中。

注意:

1)枚举只有一个成员时,就可以作为一种单例的实现方式。

2)元素列表即所有的元素项目,必须放在整个类的最前面。


-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值