黑马程序员_Java基础加强2

来源:互联网 发布:淘宝网人工在线客服 编辑:程序博客网 时间:2024/05/02 04:16

---------------------- Android、Java开发期待与您交流! ----------------------


枚举

有时候,变量的取值只在一个有限的集合内。例如:一周只有七天周日到周六;交通等的三种颜色,红、黄、绿。这样就可以自定义枚举类型。枚举类型包括优先个命名的值。

例如:enum TrafficLamp{RED,GREEN,YELLOW};

然后可以声明这一种类型的变量:

         TrafficLamp  trafficLamp = TrafficLamp.GREEN;

TrafficLamp类型的变量只能存储这个类型声明中给定的某个枚举值,或者null值,null表示这个变量没有设置任何值

所有枚举类型都是java.lang.Enum的子类,常用的方法有:

    String toString():返回枚举常量名

    static Enum valueOf(Class enumType,String name):返回带指定名称的指定枚举的常量

    int ordinal():返回枚举常量的位置,从零开始计数

注意:

          枚举只有一个成员时,就可以做为一种单例的实现方式
          枚举中的构造方法、变量、成员方法必须置于枚举常量的下方,构造方法只能为私有或默认类型

public class EnumTest{     public static void main(String[] args){      WeekDay1 weekday1 = WeekDay1.SUN;  System.out.println(weekday1.nextDay());  WeekDay weekday2 = WeekDay.SUN;  System.out.println("weekday2:"+weekday2);  System.out.println(weekday2.name());  System.out.println(weekday2.ordinal());  System.out.println(WeekDay.valueOf("FRI").toString());  System.out.println(WeekDay.values().length);  }}abstract class WeekDay1{private WeekDay1(){}     public static final WeekDay1 SUN = new WeekDay1(){         public WeekDay1 nextDay(){    return MON;}          };     public static final WeekDay1 MON = new WeekDay1(){         public WeekDay1 nextDay(){      return SUN;}          };     public abstract WeekDay1 nextDay();public String toString(){ return this==SUN?"SUN":"MON";}} enum WeekDay{     SUN(1),MON(2),TUE(),WED,THU,FRI,SAT;     private WeekDay(){}     private WeekDay(int day){}}


---------------------- Android、Java开发期待与您交流! ----------------------

0 0
原创粉丝点击