`
zhang_xzhi_xjtu
  • 浏览: 536351 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Enum简介

    博客分类:
  • java
阅读更多
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.
分享到:
评论

相关推荐

    C++大学教程,一本适合初学者的入门教材(part2)

    3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 ...

    C++大学教程,一本适合初学者的入门教材(part1)

    3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 ...

    ENUM及其性能问题研究 (2006年)

    ##### 2.1 ENUM简介 ENUM技术的核心是将E.164电话号码(国际电信联盟制定的标准电话号码格式)转换为DNS可识别的形式,并将其存储在DNS服务器中。这样一来,用户可以通过DNS查询获取相应的电话号码对应的通信服务...

    C++大学教程

    第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------------------------------...

    Python库 | enum3field-0.1.1.tar.gz

    2. `README.md`或`README.rst`: 提供库的简介、使用方法、安装指南和作者信息等。 3. `LICENSE`: 描述库的版权和许可协议,比如MIT、Apache 2.0等。 4. `requirements.txt`: 列出库运行所需的其他Python依赖。 5. `...

    springboot-fastjson-auto-transform-enum.zip

    1. **Fastjson简介** Fastjson是Java语言编写的高性能功能完备的JSON库。它可以直接将Java对象转换为JSON字符串,也可以直接将JSON内容转换为Java对象。这种转换过程非常快速,且内存占用低,是很多Java项目的首选...

    Linux之V4L2基础编程

    #### 一、V4L2简介 V4L2(Video For Linux Two)是Linux内核提供的一种用于访问音视频设备的标准接口。它为用户空间的应用程序提供了与底层硬件交互的方式,使得开发者能够方便地进行视频采集、处理以及播放等功能...

    Java实现Map集合二级联动示例

    - 使用Enum类:如果省市数据固定且不会改变,可以考虑使用Java的枚举类型(Enum)来表示,这样可以提高代码的可读性和可维护性。 - 使用框架:在实际项目中,可能会用到诸如Spring MVC、Vue.js等框架,它们提供了...

    自动识别串口 自动识别串口 vc

    ### 一、串口简介 串行端口(Serial Port)是一种用于发送和接收数据的接口标准,主要应用于计算机硬件设备之间进行数据传输。串口通信通常遵循RS-232、RS-485等标准协议。在早期的台式机和个人电脑中,串口常被...

    枚举 实现交通灯的转换

    #### 枚举类型简介 枚举(Enumeration)是一种特殊的类,用于封装一组固定的常量。在Java中,枚举类型被设计为继承自`java.lang.Enum`,并且自动实现了`Comparable`与`Serializable`接口。这意味着每个枚举类型都是...

    ov5647_mipi_raw.rar_MIPI摄像头_android_mipi_mtk android_ov5647

    1. **OV5647简介** OV5647是一款5-megapixel的图像传感器,支持多种分辨率,包括Full HD(1920x1080)和4K2K(3840x2160)。它具备高动态范围、宽色域以及良好的低光性能,能够满足多种应用场景的需求。传感器提供...

    实例175 - 枚举使用的简介

    枚举在Java中是一种特殊的类,通过关键字`enum`声明。例如,假设我们要创建一个表示一周中几天的枚举类型: ```java public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } ...

    meta-programming简介

    enum { value = n * Factorial&lt;n - 1&gt;::value }; }; template struct Factorial&lt;0&gt; { enum { value = 1 }; }; int main() { std::cout &lt;&lt; Factorial&lt;5&gt;::value ; std::cout &lt;&lt; Factorial&lt;10&gt;::value ; std::...

    MYSQL数据库操作简介

    ### MySQL数据库操作简介 在本篇文章中,我们将详细介绍MySQL数据库中的基本操作,包括数据库的创建、删除、选择以及表的创建、修改等关键知识点。这些操作对于任何希望使用MySQL进行数据存储与管理的开发者来说都...

    Visual Basic枚举指南:创建与使用枚举类型的全面攻略

    #### 一、枚举类型简介 枚举类型是一种特殊的数据类型,它由一组命名的常量组成,这些常量被赋予了整数值。枚举类型使得程序员能够用更具语义的名字替代纯数字,从而提高代码的可读性和可维护性。例如,在一个应用...

    v4l2 采集设备 API

    #### 一、简介 VideoforLinuxTwo(简称 V4L2)是一套用于处理 Linux 上视频设备的 API 和标准集合,旨在替代随内核一同发布的旧版 VideoforLinux API。V4L2 主要面向视频采集设备,提供了丰富的功能支持,包括但不...

    hashMap和hashTable的区别

    #### 一、简介与基本概念 `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在实现细节和性能特性上存在显著差异...

    Java Properties简介_动力节点Java学院整理

    Enumeration&lt;?&gt; enum1 = pps.propertyNames(); while (enum1.hasMoreElements()) { String key = (String) enum1.nextElement(); System.out.println(key + ": " + pps.getProperty(key)); } } } ``` 在这个...

Global site tag (gtag.js) - Google Analytics