【Java】枚举类的使用

简要介绍

JDK1.5引入了新的类型——枚举。

编译器生成的ValueOf方法

编译器生成的valueOf()方法需传递一个name参数,可以通过这个name参数从枚举类创建的初始对象中寻找与之对应的对象。

import java.util.Scanner;

enum Color {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLOW("黄色", 4);

    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 重载方法
    @Override
    public String toString() {
        return this.index + "_" + this.name;
    }
}

public class Main {
    public static void main(String[] args) {
        Color aColor = Color.valueOf("RED");
        System.out.println(aColor.toString());

        Color bColor = Color.valueOf("YELLOW");
        System.out.println(bColor.toString());
    }
}

输出结果为:
在这里插入图片描述

一道例题

在这里插入图片描述

题目摘要

完成一个枚举类,能够实现andor的逻辑,可以通过test方法完成布尔运算。

解答

import java.util.Scanner;

enum LogicalOp {
    and("and"), or("or");

    // 成员变量
    private String opName;

    LogicalOp(String name) {
        opName = name;
    }

	//通过枚举类的name来判断运算的方式
    boolean test(boolean p1, boolean p2) {
        if (opName.equals("and")) {
            return p1 & p2;
        } else if (opName.equals("or")) {
            return p1 | p2;
        }
        return false;
    };
}

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        boolean p1 = in.nextBoolean();
        String op = in.next();
        boolean p2 = in.nextBoolean();
        // 读入格式 : true and false
        System.out.println(LogicalOp.valueOf(op).test(p1, p2));//valueOf选择枚举类中的对象
        in.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值