JAVA枚举

JAVA枚举

一,前言

​ 了解枚举的概念,掌握枚举的用法

二,概述

​ 枚举(Enum)是Java中一种特殊类型,是为做信息的标志和分类。

三,枚举的常用方法

  • toString

​ 最离不开的就是toString,toString方法重写后返回的其实就是枚举实例的名字:

//这是Emum类的源码,枚举的toString实现,和我们想象的完全一致
public String toString(){
	return name;
}
  • valueOf

      返回具有指定名称的指定枚举类型的枚举常量。
    
//通过valueOf得到EXTRA_LARGE对象
Size s = Enum.valueOf(Size.class, "EXTRA_LARGE");
//
System.out.println(s.name());
  • ordinal

​ 这个方法返回到是枚举常量在enum声明中的位置,位置从0开始计数,具体用法如下:

public static void main(String[] args){
	//查询Enum位于第一个的SMALL
    System.out.println(Size.SMALL.ordinal());
}
输出结果:
0  //第一个位置是0
  • values

​ values方法返回的是一个包含全部枚举值的数组

public static void main(String[] args) {
	Size[] sizes = Size.values();
	for (Size size : sizes) {
		System.out.println(size.name() + ": " + size.getDescription());
	}
}

四,枚举的用法

用法一:常量

​ 可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

例:

public enum Color {  
	RED, GREEN, BLANK, YELLOW  
} 

用法二:switch

​ 在switch语句中使用枚举,能让我们的代码可读性更强。

例:

enum Signal {  
	GREEN, YELLOW, RED  
}  

public class TrafficLight {  
    Signal color = Signal.RED;  
    
    public void change() {  
        
        switch (color) {  
        case RED:  
            color = Signal.GREEN;  
            break;  
        case YELLOW:  
            color = Signal.RED;  
            break;  
        case GREEN:  
            color = Signal.YELLOW;  
            break;  
        }  
    }  
} 

用法三:自定义枚举

例:

public enum Color {  
    
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
} 
posted @   morrowday  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示