java枚举

java 枚举, 温故而知新…

/**
  * 枚举类可以实现接口
  */
interface Inter {
    public abstract void interFn();
}

/**
  * 枚举类不能继承其他类
  */
abstract class AbsClass {
    public abstract void absClassFn();
}

/**
 * 枚举类 用关键字enum定义 , 实例用逗号分隔 , 最后一个实例后面写分号(如果只有声明实例这一行代码,也可以不写最后的分号)
 * 枚举类 不能继承其他类,可以实现接口
 * 枚举类 构造方法只能是private修饰(默认有一个private修饰的无参构造方法),可以自己定义private修饰的有参数的构造方法
 * 枚举类 可以有成员属性和成员方法
 * 枚举类 可以有抽象方法,每个实例都要重写
 *
 */
enum DemoEnum /*extends AbsClass*/ implements Inter {
    ONE("1","这是1"){
        @Override
        public void absFn() {
            System.out.println("重写枚举类中的抽象方法by ONE");
        }
    },
    TWO("2","这是2"){
        @Override
        public void absFn() {
            System.out.println("重写枚举类中的抽象方法by TWO");
        }
    },
    THREE("3","这是3"){
        @Override
        public void absFn() {
            System.out.println("重写枚举类中的抽象方法by THREE");
        }
    };

    /像普通类一样的常规操作begin///
    private String label;
    private String desc;
    
    /**
     * 枚举类自定义构造方法
     * 访问权限只能是 private
     */
    private DemoEnum(String label, String desc) {
        this.label = label;
        this.desc = desc;
    }

    public String getLabel() {
        return label;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "DemoEnum{" + "label='" + label + '\'' + ", desc='" + desc + '\'' + '}';
    }
	/像普通类一样的常规操作over///
	
    /**
     * 枚举类重写接口的方法
     */
    @Override
    public void interFn() {
        System.out.println("枚举类实现了接口的方法.");
    }
    /**
     * 枚举类定义抽象方法,需要每个实例重写
     */
    public abstract void absFn();
}

public class TestEnum {
    public static void main(String[] args) {
        // 获取枚举类实例方式1
        DemoEnum one1 = DemoEnum.ONE;

        // 获取枚举类实例方式2
        DemoEnum one2 = Enum.valueOf(DemoEnum.class, "ONE");

        // 获取枚举类实例方式3
        DemoEnum one3 = DemoEnum.valueOf("ONE"); // 等效 DemoEnum one2 = DemoEnum.valueOf(DemoEnum.class, "ONE");
        
        one1.interFn();
        one1.absFn();
        System.out.println("枚举类实例的getLabel==>" + one1.getLabel());
        System.out.println("枚举类实例的getDesc==>"  + one1.getDesc());
        System.out.println("枚举类实例的toString==>" + one1.toString()); //等效 System.out.println(one);

        System.out.println("=======================================");

        //values() 获取枚举类所有实例
        for (DemoEnum en : DemoEnum.values()) {
            System.out.println("名字==>" + en.name() + ",序号==>" + en.ordinal());
        }
    }

    /*
    枚举类实现了接口的方法.
    重写枚举类中的抽象方法by ONE
    枚举类实例的getLabel==>1
    枚举类实例的getDesc==>这是1
    枚举类实例的toString==>DemoEnum{label='1', desc='这是1'}
    =======================================
    名字==>ONE,序号==>0
    名字==>TWO,序号==>1
    名字==>THREE,序号==>2
    */
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值