您的位置:首页 > 编程语言 > Java开发

黑马程序员-jdk1.5新特性---枚举

2011-07-09 16:35 363 查看
为什么要有枚举
   问题:要定义星期几或性别的变最,应该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday=0;
   枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。
   枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
 
用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
  私有的构造方法
 每个元素分别用一个公胡静态成员变量表示
 可以有若干公胡方法或抽象方法。例如,要提供nextDay方法必须是抽象的。
枚举的基本应用
 
用一般类模拟枚举
 package laladin.learn;

class EnumTest {

public Static void main(String[]args){

WeekDay weekDay = WeekDay.MON;

}

]

public class WeekDay{

private WeekDay(){}

public final Static WeekDay SUN=new WeekDay();

public final Static WeekDay MON=new WeekDay();

public WeekDay nextDay() {

if (this==SUN) {

return MON;

}else{

return SUN;

}

}

public String toString() {

return this==SUN?"SUN":"MON";

}

}

基本的枚举类:package laladin.learn;

public class EnumTest {

public static void main(Stirng[] args){

WeekDay weekDay=WeekDay.FRI;

System.out.println(weekDay); //返回FRI

System.out.println(weekDay.name());//打印出名字,返回FRI

System.out.println(weekDay.ordinal());}//返回所在的位置:返回5

System.out.println(WeekDay.valueOf("SUN"));//将传来的字符串返回对应的枚举元素。

System.out.println(WeekDay.values().length);//返回枚举的所有元素到数组

public enum WeekDay{ //用enum定义 枚举相当于一个类,他的元素就是一个实例对像

SUN,MON,TUE,WED,THI,FRI,SAT;

}

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sun 编译器 string class
相关文章推荐