枚举类的常量定义

本文详细介绍了一个使用Java枚举实现颜色实例的案例,包括如何定义枚举类型、成员变量及方法,并展示了枚举类型的使用场景,如switch语句的应用。
public class ColorEnum
{
    // 一般我们用class来定义常量,但enun也可以
    public enum Color
    {
        RED(22, 33, 4), GREEN(33, 44, 5), BLUE(3, 4, 5);
        private int r;
        private int g;
        private int b;

        // 必须为私有构造函数
        private Color(int r, int g, int b)
        {
            this.r = r;
            this.g = g;
            this.b = b;
        }

        public int getR()
        {
            return r;
        }

        public void setR(int r)
        {
            this.r = r;
        }

        public int getG()
        {
            return g;
        }

        public void setG(int g)
        {
            this.g = g;
        }

        public int getB()
        {
            return b;
        }

        public void setB(int b)
        {
            this.b = b;
        }

    }

    public static void main(String[] args)
    {
        swichEnum();
        listEnum();
    }

    /**
     * 列出所有枚举值
     */
    private static void listEnum()
    {
        Color[] colors = Color.values();
        for (Color color : colors)
        {
            System.out.println(color);
            System.out.println(color.r);
            System.out.println(color.g);
            System.out.println(color.b);
        }
    }

    /**
     * 
     */
    private static void swichEnum()
    {
        Color color = Color.BLUE;

        // switch只能对int,char,enum三种
        switch (color)
        {
            // 这里不需要加前缀,blue就相当于是一个常量定义
            case BLUE:
                System.out.println("blue");
                break;
            case RED:
                System.out.println("red");
            case GREEN:
                System.out.println("green");

            default:
                break;
        }
    }
}


### 如何定义枚举类 在 Java 中,枚举类通过 `enum` 关键字来定义。它是一种特殊的类,用于表示一组固定的常量值[^1]。以下是关于如何定义枚举类的详细介绍以及示例。 #### 枚举类的基本结构 枚举类通常由一系列固定不变的常量组成,这些常量可以被实例化并具有自己的属性和行为。下面是一个简单的枚举类定义: ```java public enum Color { RED, GREEN, BLUE; } ``` 在这个例子中,`Color` 是一个枚举类,包含了三个枚举常量:`RED`, `GREEN`, 和 `BLUE`。 #### 带有构造函数和字段的枚举类 除了简单地列出常量外,还可以为枚举类添加私有的构造函数、成员变量和其他方法。这使得每个枚举常量能够拥有自己独特的状态和行为。例如: ```java public enum Planet { MERCURY(3.30E23), VENUS(4.87E24), EARTH(5.98E24); private final double mass; // 私有构造函数 Planet(double mass) { this.mass = mass; } public double getMass() { return mass; } } ``` 在此代码片段中,`Planet` 枚举类不仅列出了行星名称作为常量,还为其分配了一个质量参数,并提供了访问该参数的方法 `getMass()`。 #### 定义带方法的枚举类 枚举类中的每一个常量都可以实现不同的方法版本。这种能力允许我们根据不同情况执行特定逻辑。如下所示: ```java public enum Operation { PLUS { @Override public double apply(double a, double b) { return a + b; } }, MINUS { @Override public double apply(double a, double b) { return a - b; } }; public abstract double apply(double a, double b); } ``` 这里展示了如何让每个操作符(加法和减法)都有其独立的行为实现方式。 --- ### 总结 以上介绍了三种不同层次复杂度下的枚举类定义形式——从最基础的形式到更复杂的带有自定义数据与功能的情况。利用这些技术可以帮助开发者创建更加灵活且易于维护的应用程序组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值