JAVA的enum类型

//enum是枚举类类型,可以这样看 enum=:every每个+num:number数
//为枚举类型的对象赋一个事例(即 枚举类型名 枚举对象名=枚举类型名.内部常量名)
//枚举类型规定了枚举对象的取值范围,在定义枚举类型时,{}中每个名字为枚举类型对象的取值
//所以规范写的话,应该把里面的变量名写成大写的,因为他们实际上是一个int常量。如果他们的名字由多个单词组成,则可以用_隔开
//在定义枚举类型时,编译器自动为内部的名字创建了toString()
//在定义枚举类型时,编译器自动为enum类型创建了values(),这个方法是生成一个由内部常量名字组成的数组,且其顺序按照常量的定义顺序。
//在定义枚举类型时,编译器自动创建了ordinal(),ordinal()方法会显示这个实例的int常量值
// [注:ordinal的汉语意思为:次序]
enum Day
{
    ZHOU1,ZHOU2,ZHOU3,ZHOU4,ZHOU5;
}
public class Hello
{
    public static void main(String[] args)
    {
        Day today=Day.ZHOU1;
        System.out.println(today);//在定义枚举类型时,编译器自动创建了toString功能,这就是这段代码打印出ZHOU5的原因。
        for (Day d: Day.values())
        {
            System.out.println("名字为:"+d);//可以看出枚举类型对象的值为常量的名字
            System.out.println("值为:"+d.ordinal());//【枚举类型对象=内部常量名】.ordinal()才是常量的实际int值
        }
        System.out.println(Day.ZHOU2.ordinal());

    }
}

输出:
这里写图片描述

//其实enum也是类,但是为什么用关键字enum定义而不用class?那是要为他定义一些自动的方法
//因为enum是类,所以也可以在他内部定义个方法,这个在以后会学。
//enum与switch百搭:因为他们都要求取值是一定的,是有范围的。
enum Day
{
    ZHOU1,ZHOU2,ZHOU3,ZHOU4,ZHOU5,ZHOU6,ZHOU7;
}
class Test
{
    Day d;
    public Test(Day d)
    {
        this.d=d;
    }
    void what_day()
    {
        switch(d)
        {
            case ZHOU1:
                System.out.println("今天是周一");
                break;
            case ZHOU2:
                System.out.println("今天是周一");
                break;
            case ZHOU3:
            case ZHOU4:
                System.out.println("今天是周三或周四");
                break;
            case ZHOU5:
                System.out.println("今天是周五");
                break;
            default:
                System.out.println("今天不上班");
        }

    }
}
public class Hello
{
    public static void main(String[] args)
    {
        Test t1=new Test(Day.ZHOU1);
        Test t3=new Test(Day.ZHOU3);
        Test t5=new Test(Day.ZHOU5);
        Test t6=new Test(Day.ZHOU6);
        t1.what_day();
        t3.what_day();
        t5.what_day();
        t6.what_day();


    }
}

输出:
这里写图片描述

这里写代码片//题目要求:创建一个enum,它包含纸币中最小面值的6中种类型。通过values()循环并打印每一个值及其ordinal()
//为enum写一个switch语句,对每一个case,输出该特定货币的描述。
//System.out.println()
enum money
{
    YI_MAO,WU_MAO,YI_YUAN,WU_YUAN,SHI_YUAN,ER_SHI_YUAN;
}
public class Hello
{
    static public void how_much(money m)
    {
        switch(m)
        {
            case YI_MAO:
            case WU_MAO:
                System.out.println("一块钱都不给我!");
                break;
            case YI_YUAN:
                System.out.println("可以坐公交车");
                break;
            case WU_YUAN:
                System.out.println("可以坐地铁");
                break;
            case SHI_YUAN:
                System.out.println("可以打的");
                break;
            default:
            case ER_SHI_YUAN:
                System.out.println("可以坐战斗机");



        }
    }
    public static void main(String[] args)
    {
        for(money m:money.values())
        {
            System.out.println("钱为:"+m+"int值为"+m.ordinal());
        }
        how_much(money.YI_MAO);
        how_much(money.WU_MAO);
        how_much(money.YI_YUAN);
        how_much(money.WU_YUAN);
        how_much(money.SHI_YUAN);
        how_much(money.ER_SHI_YUAN);

    }
}

输出:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值