黑马程序员-枚举

----------------------android培训,java培训、期待与您交流! ----------------------

 

 

枚举:

 

枚举是jdk1.5的一个新特性.很多时候,不同的程序员会对某一个的对象起不同的名字,这么一来,明明是同一个对象,却有了很多不同的名字,就会引起很多不必要的麻烦.比如颜色,中国人叫红色”,美国人叫”RED”,法国人又叫其他的.这不就很麻烦了吗? 要是可以规定这个颜色不管哪个国家的人都这样叫,这样不是很好吗?枚举就是干了这样一件事. 程序员把把指定对象的名字用枚举规定好了,不管哪个程序员都要按照规定来使用这个对象,这样就能避免很多麻烦了!

 

创建一个枚举:

enum很像特殊的class,实际上enum声明定义的类型就是一个类。而这些类都是类库中Enum类的子类(java.lang.Enum)。它们继承了这个Enum中的许多有用的方法。

因为枚举中的值全部都是public finally static,所以他们都是常量,所以在定义的时候要全部大写.

枚举既然是一个类,那么就可以定义构造方法,和普通方法

注意:

1.       枚举中所有的方法都要定义在枚举值的下面,因为这些值对象都是静态的,所有要放在最上面.

2.       枚举的构造方法必须是private

3.       枚举的构造方法可以是有参数的,也可以是没有参数的,当要调用有参数的构造放的的时候,就要在枚举值后面加上( ),并且在里面传递参数

 

枚举中的每一个值都是一个对象完整写法是public finally static Enum e= new Enum();

当定义了抽象方法的时候,这个函数就不能创建对象了,这时就需要使用匿名内部类来重写抽象方法了

 

枚举中的一个比较重要的方法: valueOf(String). 从外界传入一个参数,然后得到这个参数对应的枚举对象 . 比如 : TrafficEnum .valueOf(“SUN”)  得到枚举的SUN对象

 

 

publicclass TrafficEnum {

 

    /**

     * @param args

     */

    publicstaticvoid main(String[] args) {

       //TODO Auto-generated method stub

       TrafficLamp tfl=TrafficLamp.GREEN.nextLamp();

       System.out.println(tfl);

    }

}

enum TrafficLamp{

    RED(){

       @Override

       public TrafficLamp nextLamp() {

           //TODO Auto-generated method stub

           returnGREEN;

       }

    },GREEN(){

       @Override

       public TrafficLamp nextLamp() {

           //TODO Auto-generated method stub

           returnYELLOW;

       }

    },YELLOW(){

       @Override

       public TrafficLamp nextLamp() {

           //TODO Auto-generated method stub

           returnRED;

       }

    };

    publicabstract TrafficLamp nextLamp();

}

 

 

---------------------- android培训,java培训、期待与您交流! ----------------------

详细请查看
http://edu.youkuaiyun.com/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值