对枚举类型的分析与认识总结

本文探讨了Java枚举类型的内部实现机制,包括枚举常量如何继承自Enum类,以及如何利用枚举创建一个计算器的例子。通过源码阅读与程序调试,详细解析了枚举类型的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习了java的枚举类型,通过调试程序并阅读源码,总结如下:
1>每一个枚举类型都继承自java.lang.Enum类
2>每一个枚举常量都为枚举类的内部类并且继承自枚举类
3>所以在每一个枚举常量也同时继承了Enum类,而在Enum类的构造方法中保存了枚举常量的name与ordinal信息
4>所以我认为枚举类型实际上就是一个拥有多个继承自己本身的内部类的类似于单次套娃类型的类。
调试代码如下:
public class EnumSample {
    enum BetuifulGirl {LN,JJY,DDD,SXR};
    public enum Calculator {

        ADD ("+") {
            @Override
            public int calculation(int a, int b) {
                return a + b;
            }
        },
        SUBTRACT ("-") {
            @Override
            public int calculation(int a, int b) {
                return a - b;
            }
        },
        MULTIPLY  ("*") {
            @Override
            public int calculation(int a, int b) {
                return a * b;
            }
        },
        DIVIDE ("/") {
            @Override
            public int calculation(int a, int b) {
                if (b == 0) {
                    throw new IllegalArgumentException("divisor must not be 0");
                }
                return a / b;
            }
        };

        Calculator (String calculator) {
            this.calculator = calculator;
        }

        private String calculator;

        public abstract int calculation(int a, int b);

        public String getCalculator() {
            return calculator;
        }

    }
    public static void main(String[] args) {
        BetuifulGirl betuifulGirl = BetuifulGirl.DDD;
        Calculator calculator = Calculator.ADD;
        System.out.println(calculator.calculation(1,2));
        System.out.println(betuifulGirl);
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值