java 中的枚举类

关于枚举类 enum :
与正常类有什么区别呢?
1.枚举类继承了java.util.Enum 直接父类,但是他的根本还是Object类
2.枚举类的构造器只能使用pravite访问控制符
3.枚举类的所有实例必须在枚举类中显示出来,否则该枚举类永远不能产生实例。列出这些实例,系统会自动添加public static final 修饰符(常量)。
4.所有枚举类都提供了一个values 方法,该方法的返回值是枚举类型的数组。
5.枚举类没有继承,一般类可以。

可以参见实例代码:

package practice;

/**
 * Created by fangjiejie on 2016/11/27.
 */
public class EnumClass {
    public static void main(String[] args) {
          System.out.println(ESeason.SPRING);//不必实例化可以直接调用,有几个实例就会调用几次构造器
          ESeason.SPRING.go();//调用枚举类中的某个实例的方法
        //遍历枚举类中的实例,并调用方法
        for(ESeason a:ESeason.values()){
            //所有枚举类都提供了一个values 方法,该方法的返回值一定是枚举类型的数据
            a.go();
        }
        ESeason.values()[0].go();
    }
}
/*****枚举类****/
enum ESeason{//默认继承了java.lang.Enum直接父类,但它的根本还是object类
    SPRING,SUMMER,FALL,WINTER;
    //有限个对象,每一个对象的都是由public static final 修饰的
    //每个对象相当于ESeason SPRING=new Eseason
    ESeason(){//枚举类的构造器必须是私有,枚举类是有限个对象,
                // 如果公共的话就无限创造了,相矛盾了
        System.out.println("构造器");
    }
    //区分枚举类中的各个对象
    void go(){
        switch (this){
            case SPRING:System.out.println("春暖花开~");break;
            case SUMMER:System.out.println("夏日炎炎~");break;
            case FALL:System.out.println("秋风瑟瑟~");break;
            case WINTER:System.out.println("冬雪皑皑~");break;
            default:break;
        }
    }
}
//枚举类不能继承

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值