黑马程序员,枚举总结

来源:互联网 发布:网络舆情日报 编辑:程序博客网 时间:2024/05/29 07:51

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

package cn.itcast.day1;

import java.util.Date;

/*
* 枚举总结:1,如果想要一种类型的值,按照我们预期的方式去赋值,我们可以把这个
* 变量定义成枚举类型。让赋值规范化。
* 2,定义枚举列表时,如果这个枚举有构造函数,列表后面必须要有;号标识。
* 并且列表要放在枚举的第一行。构造方法必须要private
* 3,枚举默认为调用空参数的构造函数,如果想要调用带参数的,可以加上
* 列表元素(参数)的方式去调用。
* 4,如果枚举中有抽象方法,那么,枚举列表中的 每个元素都得实现该抽象方法。
* 列表元素(可以加参数){实现抽象方法}。
* 5,因为构造方法是private类型的 ,所以可以用枚举实现单例模式
* */
public class EnumTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//用普通类来模拟一个枚举
WeekDay1 weekDay = WeekDay1.SUN;
System.out.println(weekDay.nextDay().toString());;
System.out.println(WeekDay1.MON);

WeekDay weekDay2 = WeekDay.FRI;
System.out.println(weekDay2);
System.out.println(weekDay2.name());
System.out.println(weekDay2.ordinal());

//把一个字符串变成一个枚举对象中的元素
System.out.println(WeekDay.valueOf("SUN"));

//将枚举中的元素变成数组
WeekDay[] wds = WeekDay.values();//会调用默认构造函数
for(WeekDay wd:wds){
System.out.println("..."+wd);
}
//System.out.println(WeekDay.values().length);

new Date(300){};

}

public enum WeekDay
{
SUN(),MON(1),TUE,WED,THI,FRI,SAT;//元素列表,所有的方法信息,列表元素其实就是枚举类型的对象
//必须位于期之后,此元素列表后必须由;号,默认调用空的构造方法
//可以在元素后面加()参数调用指定的构造方法
private WeekDay(){System.out.println("first");};//构造方法必须私有
private WeekDay(int i){System.out.println("secend");};

}

public enum TrafficLamp
{
//列表元素其实就是枚举类型的对象,必须要实现本类对象的抽象方法。
RED(30){
public TrafficLamp nextLamp(){
return GREE;
}
},GREE(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
};
};
public abstract TrafficLamp nextLamp();

private int time;
private TrafficLamp (int time){this.time = time;}

}

}

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

原创粉丝点击