柏竹 柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档

柏竹

奋斗柏竹
首页
后端
前端
  • 应用推荐
关于
友链
  • 分类
  • 标签
  • 归档
  • Java基础

    • Java认识
    • 面向对象概述
    • Java API
    • Java三大特性
    • Java类的高级特性
    • Java异常
    • Swing程序设计
    • Java集合类
    • Java I/O
    • Java反射
    • 枚举
      • 枚举中的构造方法
      • 常量设置
      • 接口实现
      • 方法
      • 代码实例
    • 泛型
    • Java线程
    • Java网络通信
    • Java事件
    • AWT绘图
    • Java网页访问
    • XML&JSON
    • Java注解
  • JavaWeb

  • 拓展技术

  • 框架技术

  • 数据库

  • 数据结构

  • Spring

  • SpringMVC

  • SpringBoot

  • SpringClound

  • Ruoyi-Vue-Plus

  • 后端
  • Java基础
柏竹
2020-02-18
目录

枚举

# 枚举

Class Enum<E extends Enum <E> > java.lang.Object java.lang.Enum <E>

枚举是一种特殊的数据类型,也是常量的集合,主要作用是限制指定内容

特点:

  • 类型安全
  • 可以和程序其他部分完美交交互
  • 运行效率高

# 枚举中的构造方法

在枚举类型中添加构造方法前提该构造方法必须为private权限修饰符

public enum Constants{//Constants枚举名称
    Constants_A,
Constants_B;
    private String name;
    private Constants(String name){
        name.this = name;
    }
}

# 常量设置

当定义枚举类型时,每个枚举类型的成员都可以看做实例,类型默认修饰为 final、public、static ,当使用时直接调用对应的名称即可

public enum Level{//Constants枚举名称
	LOW(30) , MEDIUM(15) , HIGH(7) , URGENT(1);
	    
	private int levelValue;
   	// 有参构造器
	private Level(int levelValue) {
		this.levelValue = levelValue;
	}
    // 获取枚举数据nam
	public int getLevelValue() {
		return levelValue;
	}
}

# 接口实现

枚举已经继承了Java.lang.Enum类,Java 不支持多继承,所以枚举对象不能再继承其他类

public interface Lshow(){
    void show();
}
public enum Level implements Lshow(){
    
    LOW(100){
        public void show(){
            ···
        }
    },
    //注意:每个常量要有逗号分隔
    URGENT(1){
        public void show(){
            ···
        }
    }
    
    private int levelValue;
    private Level(int levelValue) {
    	this.levelValue = levelValue;
    }
    public int getLevelValue() {
    	return levelValue;
    }
}

# 方法

返回 方法 说明
int compareTo(<E> o) 获取 两个枚举常量比较的顺序
int ordinal()  获取 枚举常量的索引位置
Class<?> getDeclaringClass() 获取 枚举常量的类型对应的Class对象
String name() 获取 枚举常量的名称
static<T extends Enum<T>> T static valueOf(Class<T> enumType , String name) 获取 指定枚举类型的枚举常量

注意:

  • 枚举属性不要试图修改(一般定义的都是常量)
  • 枚举类默认继承 java.lang.Enum类
  • 枚举类不能有子类,因枚举类默认被final修饰
  • 只能有private构造方法 switch中使用枚举时,直接使用常量名,不用携带类名
  • 不能定义name属性,因自带name属性

# 代码实例

class Demo {
    enum ELevel {
        /**
         * LOW : 最大 ; URGENT : 最小
         */
        LOW(100), URGENT(1);
        
        private int value;
        ELevel(int value){
            this.value = value;
        }
        public int getValue() {
            return value;
        }
    }
    
    interface LLevel {
        final int LOW = 100;
        final int URGENT = 1;
    }
    
    /**接口使用*/
    public void showL(int l){
        switch (l){
            case LLevel.URGENT :
                System.out.println("URGENT");
                break;
            case LLevel.LOW :
                System.out.println("LOW");
                break;
            default:
                System.out.println("错误");
        }
    }
    
    /**枚举使用*/
    public void showE(ELevel e){
        switch (e){
            case URGENT:
                System.out.println("URGENT");
                break;
            case LOW:
                System.out.println("LOW");
                break;
            default:
                System.out.println("错误");
        }
    }
    
    public static void main(String[] args) {
        Demo d = new Demo();
        d.showL(LLevel.URGENT);
        d.showE(ELevel.LOW);
        
         System.out.println("ELevel.LOW.name() : " + ELevel.LOW.name());
        System.out.println("ELevel.URGENT.ordinal() : " + ELevel.URGENT.ordinal());
        System.out.println("Enum.valueOf(ELevel.class  , \"URGENT\") : " + 	Enum.valueOf(ELevel.class , "URGENT"));
    }
}
#Java
上次更新: 2023/03/12, 00:43:49

← Java反射 泛型→

最近更新
01
HTTPS自动续签
10-21
02
博客搭建-简化版(脚本)
10-20
03
ruoyi-vue-plus-部署篇
07-13
更多文章>
Theme by Vdoing | Copyright © 2019-2024 | 桂ICP备2022009417号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式