java的Enum不同于c的命名整型常量,它本身是有类型的,而且Enum不能用new生成。
Enum不能extends其他类型,因为它本身extends了java.lang.Enum,也不能被其他类型明确extends,好像final类一样。但是其实Enum还是可以被隐式继承的,constant-specific class bodies。
Enum可以实现接口,默认实现了Serializable和Comparable.
每个Enum默认有2个static方法,
public static E[] values()按声明顺序返回所有的enum。
public static E valueOf(String name)用指定的名字返回enum。
Enum常用方法:
public final String name()
public final int ordinal()
public final int compareTo(E o) 不覆盖的话为声明顺序
public final Class<E> getDeclaringClass()注意这个和getClass不同,因为有可能有constant-specific class bodies。
不支持clone。Enum可以是==比较相等性。
hashCode和equals也被final覆盖了.
注意有EnumSet和EnumMap,性能比较好。
语言支持Enum可以用switch.
分享到:
相关推荐
3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 ...
3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 ...
##### 2.1 ENUM简介 ENUM技术的核心是将E.164电话号码(国际电信联盟制定的标准电话号码格式)转换为DNS可识别的形式,并将其存储在DNS服务器中。这样一来,用户可以通过DNS查询获取相应的电话号码对应的通信服务...
第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------------------------------...
2. `README.md`或`README.rst`: 提供库的简介、使用方法、安装指南和作者信息等。 3. `LICENSE`: 描述库的版权和许可协议,比如MIT、Apache 2.0等。 4. `requirements.txt`: 列出库运行所需的其他Python依赖。 5. `...
1. **Fastjson简介** Fastjson是Java语言编写的高性能功能完备的JSON库。它可以直接将Java对象转换为JSON字符串,也可以直接将JSON内容转换为Java对象。这种转换过程非常快速,且内存占用低,是很多Java项目的首选...
#### 一、V4L2简介 V4L2(Video For Linux Two)是Linux内核提供的一种用于访问音视频设备的标准接口。它为用户空间的应用程序提供了与底层硬件交互的方式,使得开发者能够方便地进行视频采集、处理以及播放等功能...
- 使用Enum类:如果省市数据固定且不会改变,可以考虑使用Java的枚举类型(Enum)来表示,这样可以提高代码的可读性和可维护性。 - 使用框架:在实际项目中,可能会用到诸如Spring MVC、Vue.js等框架,它们提供了...
### 一、串口简介 串行端口(Serial Port)是一种用于发送和接收数据的接口标准,主要应用于计算机硬件设备之间进行数据传输。串口通信通常遵循RS-232、RS-485等标准协议。在早期的台式机和个人电脑中,串口常被...
#### 枚举类型简介 枚举(Enumeration)是一种特殊的类,用于封装一组固定的常量。在Java中,枚举类型被设计为继承自`java.lang.Enum`,并且自动实现了`Comparable`与`Serializable`接口。这意味着每个枚举类型都是...
1. **OV5647简介** OV5647是一款5-megapixel的图像传感器,支持多种分辨率,包括Full HD(1920x1080)和4K2K(3840x2160)。它具备高动态范围、宽色域以及良好的低光性能,能够满足多种应用场景的需求。传感器提供...
枚举在Java中是一种特殊的类,通过关键字`enum`声明。例如,假设我们要创建一个表示一周中几天的枚举类型: ```java public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } ...
enum { value = n * Factorial<n - 1>::value }; }; template struct Factorial<0> { enum { value = 1 }; }; int main() { std::cout << Factorial<5>::value ; std::cout << Factorial<10>::value ; std::...
### MySQL数据库操作简介 在本篇文章中,我们将详细介绍MySQL数据库中的基本操作,包括数据库的创建、删除、选择以及表的创建、修改等关键知识点。这些操作对于任何希望使用MySQL进行数据存储与管理的开发者来说都...
#### 一、枚举类型简介 枚举类型是一种特殊的数据类型,它由一组命名的常量组成,这些常量被赋予了整数值。枚举类型使得程序员能够用更具语义的名字替代纯数字,从而提高代码的可读性和可维护性。例如,在一个应用...
#### 一、简介 VideoforLinuxTwo(简称 V4L2)是一套用于处理 Linux 上视频设备的 API 和标准集合,旨在替代随内核一同发布的旧版 VideoforLinux API。V4L2 主要面向视频采集设备,提供了丰富的功能支持,包括但不...
#### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在实现细节和性能特性上存在显著差异...
Enumeration<?> enum1 = pps.propertyNames(); while (enum1.hasMoreElements()) { String key = (String) enum1.nextElement(); System.out.println(key + ": " + pps.getProperty(key)); } } } ``` 在这个...