A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 疯疯疯疯疯子 中级黑马   /  2015-9-10 13:57  /  317 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有些自己的注释,可能有些地方说的不对,
请指导!!!

枚举

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



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;
                }
        }
}


3 个回复

倒序浏览
顶楼主,学习下
回复 使用道具 举报
还没学,不过先看看,顶一个
回复 使用道具 举报
哪里的,我这里好像没有教枚举
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马