ENUM类型

ENUM类型

1.今天在练习的时候遇到一个差点绕不出来的enum类型问题。可能是底子较薄吧。汗!

先看代码:

定义:

package com.tree.www;

/**
 * 定义货币最小类型的6种面值
 */
public enum Money {
    BAIYUAN,YUAN,JIAO,FEN,LI;
}

接着是利用switch进行判断并打印枚举名称:

package com.tree.www;

/**
 * 利用switch对Money进行判断并输出货币描述
 * @author Tree
 */
public class SwitchMoneyEnum {
    Money money;   //枚举也可以看成是对象类型,这样声明出来的money实际上是一个对象。

    public  SwitchMoneyEnum(Money money){
        this.money=money;
    }//这里对money对象进行实例化
   public void switchMoney(){
       System.out.println(money);
        switch (money){   //这里的money是Money类型的一个实例化后的拥有一个值的Money对象
            case FEN:
                System.out.println("这是分");
                break;
            case YUAN:
                System.out.println("这是元");
                break;
            case JIAO:
                System.out.println("这是角");
                break;
            case LI:
                System.out.println("这是厘");
                break;
        }
    }

    public static void main(String[] args) {
       SwitchMoneyEnum  yuan=new SwitchMoneyEnum(Money.FEN),
                        fen=new SwitchMoneyEnum(Money.BAIYUAN),
                        li=new SwitchMoneyEnum(Money.LI),
                        jiao=new SwitchMoneyEnum(Money.JIAO);
       yuan.switchMoney();
       li.switchMoney();
       jiao.switchMoney();
    }
}

明明可以用Money.FEN /Money.YUAN …进行直接调用,这里却用了方法或者类型的思路去进行进行理解枚举类型。

package com.tree.www;

/**
 * 利用values打印money种的所有面值以及ordinal();
 * @aurhot Tree
 */
public class MoneyOrder {
    public static void main(String[] args) {
        for(Money m:Money.values())
             System.out.println(m+":"+m.ordinal());
        System.out.println(Money.FEN.ordinal());
    }
}
//所以枚举还可以理解为一个简单的集合,可以利用foreach结构进行遍历
//ordinal()方法记录了当前枚举在声明时的次序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值