java基础枚举_Java基础——枚举

枚举

引入

在Java程序中,我们通常通过声明初始化常量或变量来满足程序的需求。

但是有些方法在运行时,它需要的数据不能是任意的,必须是一定范围内的值。

通过枚举,我们把值规定到固定范围,不用担心代码编写失误或超出范围;

同时,枚举可以在整个程序内调用,不用重复编写,提高代码复用率;

此外枚举也能让代码整体更直观的、可读性。

枚举的应用场景:错误码,状态机。

定义

不能继承

Java规定单继承,enum已经继承了java.lang.Enum类

可以实现接口

Java中一个类可以实现多个接口

//权限修饰符 enum 枚举名 implements 接口名{

// 元素1,元素2...;//分号可有可无

//}

public enum Grade{

A,B,C,D,E;

}

成员

枚举成员同样是变量(遵循标识符规定)

Java 不允许使用 = 为枚举常量赋值

//不能以数字开头

public enum Num{

1,2,3;

}

4a4f7cf36c79bfa5fa3bf8ca4a5f23a8.png

//不能用=赋值

public enum Grade{

A = 1,B = 2;

}

4a4f7cf36c79bfa5fa3bf8ca4a5f23a8.png

本质

除了不能继承,基本上可以将 enum 看做一个常规的类

Java的enum本质是一个class(类)

枚举类型,编译后就是.class

枚举成员是枚举对象,枚举对象均为静态常量(不可改变)//第一种写法

public enum Color{

RED,BLACK,WHITE;

}

//第二种写法

public enum Color{

RED(),BLACK(),WHITE();

}

枚举可添加构造方法public enum Color{

RED("red color",0),BLACK("black color",1),WHITE("white color",2);

//必须加,enum不能实例化对象

Color(String str,int num){

name = str;

id = num;

}

String name;

int id;

}

区别

枚举不可以实例化

自动为构造方法加上private,私有属性

枚举成员变量只有get方法

特点

数据集

数值稳定

元素个数有限

所有枚举类继承Enum类的方法

方法名

参数

返回值

作用

compareTo()

枚举值

int

当前枚举元素在该元素的位置 -表示左 (+)表示右

equals()

object

boolean

判断是否是当前枚举元素

hashcode()

int

获取枚举值的哈希码

ordinal()

int

获取枚举元素所在位置

name()

String

返回实例名

toString()

String

枚举元素转为String

getClass()

class

获取当前枚举元素的类

getDeclaringClass())

class

获取定义枚举的类

Java 不允许使用=为枚举常量赋值。

可通过values()返回枚举实例数组

可通过 ==比较enum实例

博客相关java项目:查看Github项目

对应github项目:MeiJu

原文:https://www.cnblogs.com/occlive/p/13362034.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值