黑马程序员技术交流社区

标题: 刚学的枚举笔记 [打印本页]

作者: 疯疯疯疯疯子    时间: 2015-9-10 13:57
标题: 刚学的枚举笔记
有些自己的注释,可能有些地方说的不对,
请指导!!!

枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错
,枚举可以让编译器在编译时就可以控制程序中填写的非法值,普通变量的方式在开发阶段
无法实现这一目标。



enum类

基本方法

int ordinal()
          返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

String toString()
          返回枚举常量的名称,它包含在声明中。


static <T extends Enum<T>>
T
valueOf(Class<T> enumType, String name)
          返回带指定名称的指定枚举类型的枚举常量。

String name()
          返回此枚举常量的名称,在其枚举声明中对其进行声明。


枚举相当于一个类,其中也可以定义构造方法,成员变量,普通方法和抽象方法
枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分割。
把枚举中的成员方法或变量等放在元素的前面,编译器会报错

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


public class enumTest {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Weekday d1 = Weekday.FRI;
                System.out.println(d1);
                System.out.println(d1.name());//FRI  返回此枚举常量的名称,在其枚举声明中对其进行声明
                System.out.println(d1.ordinal());//5   返回枚举常量的序数
                System.out.println(Weekday.valueOf("SUN"));//返回带指定名称的指定枚举类型的枚举常量。
                System.out.println(Weekday.values().length);//7  values返回一个Weekday的集合,length得出长度
        }

        public enum Weekday{        //这是内部类       
                SUN,MAN,TUE,WED,THI,FRI,STA;  每一个数据都是Weekday中的实例对象(子类)
        }

        public enum TraffcLamp{
                RED(30){        //通过子类RED去调用父类TraffcLamp中的构成方法,放入参数
                        public TraffcLamp nextLamp(){ //实现父类TraffcLamp中的抽象方法
                                return null;
                        }
                },GREEN(45){
                        public TraffcLamp nextLamp(){
                                return null;
                        }
                },YELLOW(5){
                        public TraffcLamp nextLamp(){
                                return null;
                        }
                };
        //因为RED,GREEN,YELLOW都是TraffcLamp的子类,
        //而父类TraffcLamp中有抽象方法nextLamp,所以子类需要去实现父类的抽象方法
        //子类中再加{},表示子类中匿名内部类。
                public abstract TraffcLamp nextLamp();
                private int time;
                private TraffcLamp(int time){  //定义构造函数
                        this.time=time;
                }
        }
}



作者: pz_xiaoxie    时间: 2015-9-10 14:17
顶楼主,学习下
作者: 641113495    时间: 2015-9-10 19:52
还没学,不过先看看,顶一个
作者: bgxpf    时间: 2015-9-10 22:51
哪里的,我这里好像没有教枚举




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2