enum的用法

枚举类型详解

一、enum 枚举类型形式

enum enum_name
{

ENUM_1

ENUM_2

ENUM_3

......

}ENUM_NAME;

注意:enum_name 是自定义的一种数据数据类型名,而ENUM_NAME 为enum_name类型的的枚举变量。

实际上enum_name类型是对一个变量取值范围的限定,即enum_name 类型的变量ENUM_NAME 只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错或者警告。

枚举常量(常量一般用大写)。

enum_name和ENUM_NAME可以只保留一个。

二、一般用法

第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1

enum sample
{

enum_1,

enum_2,

enum_3,

}SAMPLE;

举类型sample有3个数据,序号为0、1、2。

enum sample
{

enum_1 = 2,

enum_2,

enum_3,

}SAMPLE;

举类型sample有3个数据,序号为2、3、4。
      enum用来定义一系列宏定义常量区别用,相当于一系列的#define xx xx,当然它后面的标识符也可当作一个类型标识符;typedef  enum则是用来定义一个数据类型,那么该类型的变量值只能在enum定义的范围内取。两者在这点上是没有差别的。

typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

### Java 枚举类型 (enum) 的使用教程 #### 创建枚举类型的语法结构 在 Java 中,`enum` 类型可以被看作是一个特殊的类。创建 `enum` 需要使用关键字 `enum` 并为其指定名称以及一系列固定的常量值[^1]。 ```java public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } ``` #### 向枚举添加字段和方法 除了简单的声明外,还可以像普通类一样给 `enum` 添加私有字段、构造函数及公共的方法来增强功能。 ```java public enum Planet { MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6); private final double mass; private final double radius; Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } public double getMass() {return mass;} public double getRadius(){return radius;} // Additional methods can be added here... } ``` #### 获取特定枚举实例 通过调用静态工厂方法 `valueOf()` 可以根据字符串形式的名字返回对应的枚举实例[^2]。 ```java Day day = Day.valueOf("MONDAY"); System.out.println(day); ``` #### 访问所有枚举成员 利用 `values()` 方法能够获取到当前枚举类型下的全部枚举项数组。 ```java for(Day d : Day.values()){ System.out.println(d); } ``` #### 获得枚举元素的位置序号 每个枚举实例都有一个唯一的顺序编号可以通过 `ordinal()` 函数获得它相对于第一个定义的偏移位置[^3]。 ```java Planet earth = Planet.EARTH; int index = earth.ordinal(); System.out.println(index); ``` #### 对象哈希码计算 对于每一个具体的枚举对象来说,都支持默认实现来自 Object 类中的 `hashCode()` 方法用于散列映射操作[^4]。 ```java Set<Planet> planets = new HashSet<>(); planets.add(Planet.MARS); // Using the hash code implicitly when adding to a set. if(planets.contains(Planet.MARS)){ System.out.println("Mars is present."); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值