• 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;
            }
        }
    }
    
  • 相关阅读:
    Java 抽象类
    7.队列的链表实现
    6.队列的数组实现
    5.栈的链表实现
    4.栈的数组实现
    3.线性表-cursor
    2.线性表-Linked list
    1.线性表-Array
    hello world!
    boost 大小端转换
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6809633.html
Copyright © 2020-2023  润新知