黑马程序员——高新技术--枚举

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

枚举:

枚举是java1.5的新特性
枚举是一个特殊的类,其中的每个元素都是该类的一个实例对象,

有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,Java语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
定义方法如下:

//enum声明放在类型名前
public enum Weekend{

    //元素一定要定义在开头处。
    SAT,SUN; //若下面不再有任何东西,分号可以不写
}

那么我们要创建Weekend的实例对象的时候就只能创建枚举类里定义的元素,而不能创建其他的对象。

因此:
枚举只有一个成员时,可以作为一种单例的实现方式。

枚举类方法:

枚举类自带方法有
- values(返回一个装有该类所有对象的数组),
- valueOf(把输入的字符串转换成对应的枚举元素),
- name(),
- toString(),
- ordinal(返回指定元素的排行位置)等方法

枚举类也可以定义构造方法,而且必须是私有的
枚举类也可以自己定义方法
如果在枚举类里定义了抽象方法,则他的每个元素都分别由枚举类的子类来生成实例对象。

枚举类是内部类,跟成员变量及成员方法平级,可以加上四个访问修饰符

public class EnumDemo {

    public static void main(String[] args) {

        //创建枚举类实例对象
        Weekend sat = Weekend.SAT;

        //调用方法
        sat.nextWeekend();
        sat.print();
    }
    public enum Weekend{

        //通过传递不同参数调用不同的构造函数
        SAT(24){

            //复写枚举类中的toString方法
            public String toString(){
                return "星期六";
            }

            //实现抽象方法
            public Weekend nextWeekend(){
                return SUN;
            }
        },
        SUN(){
            public String toString(){
                return "星期天";
            }
            public Weekend nextWeekend(){
                return SAT;
            }
        };
        private int time;

        //构造函数要定义为私有,为了防止新创建实例对象
        private Weekend(int time){
            this.time = time;
        }
        private Weekend(){
            this.time = 0;
        }
        public abstract Weekend nextWeekend();
        public void print(){
            System.out.println("今天是:"+this.toString()+"休息时间为:"+this.time);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值