JAVA 枚举

枚举是一种特殊类型

格式:

修饰符 enum 枚举名称{

        每一行都是罗列枚举类实例的名称

}

enum Season{

        SPRING,SUMMER,AUTUMN,WINTER;

}

用法:

        比如开发超级玛丽,要接收上下左右四个方向的信号,控制玛丽的移动

        如果用常量做信息标志和分类,入参值不受约束,代码相对不够严谨

        枚举做信息标志和分类,代码可读性好,入参约束严谨

每个枚举都是在class内部实现的,所有枚举值都是public static final的

class Season{

        public static final Season SPRING = new Season();

        public static final Season SUMMER = new Season();

        public static final Season AUTUMN = new Season();

        public static final Season WINTER  = new Season();

}

迭代枚举元素

package Experience;

public class enumDemo1 {
    public enum enumDemo {
        SPRING,SUMMER,AUTUMN,WINTER;
    }
    public static void main(String[] args) {
        for(enumDemo a:enumDemo.values()){
            System.out.println(a);
        }
    }
}

 在switch中使用枚举类

package Experience;
public class enumDemo1 {
    public enum enumDemo {
        SPRING,SUMMER,AUTUMN,WINTER;
    }
    public static void main(String[] args) {
        enumDemo b=enumDemo.AUTUMN;
        switch (b){
            case SPRING:
                System.out.println("春天");
                break;
            case SUMMER:
                System.out.println("夏天");
                break;
            case AUTUMN:
                System.out.println("秋天");
                break;
            case WINTER:
                System.out.println("冬天");
                break;

        }
        }
    }

 枚举类的方法:

        values():返回枚举类中所有的值

        ordinal():找到每个枚举常量的索引,像数组索引一样

        valueOf():返回指定字符串值的枚举常量

package Experience;
public class enumDemo1 {
    public enum enumDemo {
        SPRING,SUMMER,AUTUMN,WINTER;
    }
    public static void main(String[] args) {
            enumDemo arr[]=enumDemo.values();
            for(enumDemo b:arr){
                System.out.println(b+"+"+b.ordinal());
            }
            System.out.println(enumDemo.valueOf("SPRING"));

        }
}

 

枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。

枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。

package Experience;
public class enumDemo1 {
    public enum enumDemo {
        SPRING,SUMMER,AUTUMN,WINTER;
        private enumDemo(){
            System.out.println(" for : " + this.toString());
        }
        public void Info()
        {
            System.out.println("ddd");
        }
    }
    public static void main(String[] args) {
        enumDemo c1 = enumDemo.WINTER;
        System.out.println(c1);
        c1.Info();
        }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值