zoukankan      html  css  js  c++  java
  • Java之枚举

    1.定义

    enum 是一种数据类型,与 全局常量比较相似,都是全局的并且是可以通过类名调用的
    

    与全局常量区别

        枚举功能更强大,可以有属性和方法
        枚举比全局常量更加的规范
    

    2.枚举特性

    1)可以有属性以及set/get,方法,构造函数
    
    2)可以与switch连用
    
    3)可以重写toString方法,打印枚举对象时也会默认调用(官方不提供自动重写该方法)
    
    4)可以实现接口
    

    3.获取枚举对象方法

    【返回枚举属性值对应的对象】枚举.valueof(“属性值”)
    【返回所有枚举属性值对应的对象】枚举.values()
    【返回枚举对象】枚举.属性
    

    4.枚举实例

    代码:

    枚举类

    package com.qf.demo7;
    
    public enum Color {
        // red,green,yellow,实际上是Color枚举类型对象
        RED("红色",1),GREEN("绿色",2),YELLOW("黄色",3);
    
        // 无论是否创建枚举对象   都一定需要加上 分号  否则编译报错
    
        //枚举类可以添加属性和方法,如下
        String name;
        int id;
    
        private Color(String name, int id) {
            this.name = name;
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        // 枚举中可以重写 toString 但是官方不会提供  
        // 打印对象时,会帮助自动调用
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return "id="+id+",name="+name;
        }
    }
    

    测试类:

    package com.qf.demo7;
    
    public class Test {
    
        public static void main(String[] args) {
            //1.获取枚举对象:类.属性
            Color color= Color.YELLOW;// 
            System.out.println(color.getName()+" "+color.getId());
    
            //2.获取枚举对象:类.valueOf()
            Color color2 = Color.valueOf("RED");// 根据枚举属性值 得到 枚举对象
    
            //3.获取所有属性值:类.values()
            Color[] colors = Color.values();// 得到枚举中所有的属性对应的对象
            for (Color color3 : colors) {
                System.out.println(color3);
            }
    
    
            //4.枚举可以作为switch语句的表达式
            switch (color2) {
            case RED:
                System.out.println("红色");
                break;
            case GREEN:
                System.out.println("绿色");
                break;
            case YELLOW:
                System.out.println("黄色");
                break;
            }
        }
    }
    
  • 相关阅读:
    HDU 3374 String Problem(最小(大)表示 + KMP)
    HDU 1253 胜利大逃亡
    #include <cctype>
    HDU 4162 Shape Number(最小表示法)
    USACO section1.3 Mixing Milk 混合牛奶
    HDU 1572 下沙小面的(2)
    HDU 1969 Pie
    USACO section1.2 Milking Cows 挤牛奶(区间覆盖)
    HDU 2492 Ping pong (树状数组)
    筛选法打表:求某个数的素因子之和
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6809633.html
Copyright © 2011-2022 走看看