`
sdh88hf
  • 浏览: 69583 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

浅列JavaEnum

阅读更多
enum Province{ ZHEJIANG,SHANGHAI,JIANGSU }


Province是一个最简单枚举类,它内部有三个指向它实例包括江浙沪
枚举类的特点就是它的所有实例都是在它内部生长的,并都是由编译器创建生成的

Province.values() //返回Province所有实例的数组[ZHEJIANG,SHANGHAI,JIANGSU]
其实Enum类并不存在values方法,是由编译器添加的静态方法,还有一种获得实例数组
的方法就是 Province.ZHEJIANG.getClass().getEnumConstants()

Province.SHANGHAI.ordinal() //返回SHANGHAI的序列下标 1
Province.values()[0].name() //返回ZHENGJIANG的显示名称'ZHEJIANG'


enum Province{
   ZHEJIANG("浙江"),
   SHANGHAI("上海"),
   JIANGSU ("江苏");
   
   private String name;
   
   public String getDesc(){
       return "地址是"+name;
   }

   public Province(String name){
       this.name = name;
   }
}

自定义枚举构造方法,在创建江浙沪3个实例时都传递了各自的中文名称作为构造参数
Province.values()[0].getDesc() //自定义方法 返回地址是浙江
注意要自定义属性或方法时必须在枚举最后一个实例后面加上';'号

为什么枚举不能继承其他类?
因为所有枚举都默认继承Enum类了,java指定一个类最多只能继承一个父类,所以枚举类
无法再显示继承其他类了,当然枚举可以实现接口.

interface Province{
   enum Huadong implements Province{
       ZHEJIANG,SHANGHAI;
   },
   enum Huanan implements Province{
       GUANGDONG,JIANGXI;
   },
   enum Huabei implements Province{
       BEIJING,TIANJING;
   }
}


通过枚举实现接口的方式,将省分为华东华南华北三类,Province p = Province.Huangdong
.ZHEJIANG可以将ZHEJIANG向上转型为Province类型

Enum虽然可以很好的管理数据,但是他不能手动新增或删除实例,算不上一个容器
说到枚举特有的容器,看看下面的代码创建一个直辖市的EnumSet保存数据
EnumSet<Province> zhixiashi = EnumSet.noneOf(Province.class);
zhixiashi.addAll(EnumSet.of(Province.BEIJING,Province.TIANJING));


再看一个EnumMap的例子
EnumMap<String[]> citys = new EnumMap<String[]>(Province.class);
citys.put(Province.Huadong.ZHENGJIAN,{'杭州','宁波','绍兴'})

EnumMap的特点就是它的key都必须是枚举类型的


注:以上代码均为手敲伪代码,不保证能编译通过
分享到:
评论

相关推荐

    java enum 枚举 学习资料

    "Java Enum 枚举学习资料" Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举...

    Java enum的用法详解

    Java enum 的用法详解 Java enum(枚举)是一种特殊的数据类型,用于定义一组固定的常量。从 JDK 1.5 开始,Java 引入了 enum 机制,解决了传统的常量定义方式的不足。 用法一:常量 在 JDK 1.5 之前,我们定义...

    Java Enum使用Demo源码

    在Java编程语言中,枚举(Enum)是一种特殊的类,用于定义固定的常量集合。它在许多场景下比常量接口或静态final变量更安全、更方便。本篇将通过"Java Enum使用Demo源码"深入探讨Java枚举的用法。 首先,枚举在Java...

    java的Enum

    ### Java的Enum知识点详解 #### 一、枚举的基本概念 在Java中,`enum`(枚举)是一种特殊的类,用于定义一组常量值。它可以帮助开发者限制一个变量的可能值,使其只能从预定义的一组选项中选择。枚举提供了一种更...

    Java Enum和String及int的相互转化示例

    Java Enum和String及int的相互转化示例 Java Enum和String及int的相互转化示例是Java编程语言中的一种重要技术,通过本文,我们将详细介绍Java Enum和String及int的相互转化示例,并提供详细的示例代码,帮助大家更...

    Java enum的用法详解.docx

    Java 枚举(enum)是Java 1.5 引入的一种新的数据类型,它用于表示一组相关的值,这些值可以被当作常量来使用。枚举类型比传统的静态常量更加安全,可读性更好,并且允许进行更丰富的定制。下面我们将详细探讨Java ...

    java enum 枚举的spring boot2.x完美实现demo源码

    在Java编程语言中,枚举(`enum`)是一种强大的工具,它允许我们定义一组预定义的常量。在Spring Boot 2.x框架中,枚举的使用可以帮助我们更好地管理和组织代码,提供类型安全和可读性。本篇将深入探讨如何在Spring ...

    Java SE程序 Enum枚举类

    Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...

    Java enum(枚举)的使用

    Java 枚举(enum)是Java 1.5版本引入的一种强大的类型,它允许开发者定义一组预定义的常量,这些常量具有特定的名称和顺序。枚举在很多场景下替代了传统的常量定义方式,增加了代码的可读性和安全性。 首先,枚举...

    java enum枚举教程学习资料

    Java枚举(enum)是Java语言提供的一种特殊的数据类型,用于定义一组有限的常量,这些常量在程序中作为固定的值使用。枚举在Java中是类的子类型,因此,它们具备类的一些特性,比如可以有方法、变量以及实现接口。...

    java中enum枚举的详细用法

    Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...

    javaenum学习.pdf

    以下是对`javaenum学习.pdf`中提到的Java枚举相关知识点的详细说明: 1. **枚举元素定义**: - 枚举元素的列表必须写在枚举类的开头,元素之间用逗号分隔。如果元素列表后面没有其他内容,可以不加分号;如果有...

    Java枚举类型Enum的用法

    Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...

    java Enum EnumMap 简单例子

    简单查询算法,供学习参考。 代码中描述了Enum和EnumMap类的使用。

    初学者java enum样例详解

    java初学者内容对于enum类型,可能仅仅停留在枚举项只有一个字段的数据,在实际开发中可能对着每个枚举项包含几个信息,key value,学生姓名,年龄,身高等,样例详细定义了包含多个值enum类型并使用,请参考文件

    Java中的Enum的使用与分析

    ### Java中的Enum深入解析 #### 引言 在Java编程语言中,`Enum`是一种特殊的数据类型,用于处理一组固定的常量。它不仅提供了一种更安全、更灵活的方式来表示一组固定的选择,还包含了丰富的内置功能,使得枚举...

    高阶Java-Java枚举类型 enum 应用详解

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组固定的常量。它在许多场景下比使用常量或int类型的硬编码值更安全、更具可读性。本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用...

    Java enum的用法详细介绍及实例代码

    在Java编程语言中,`enum`(枚举)是一种强大的类型,它允许开发者定义一组预定义的常量。枚举在许多方面都优于传统的静态常量,因为它提供了更多的功能和灵活性。以下是对Java `enum`的详细用法和实例代码的深入...

    java代码-java enum枚举遍历

    在Java编程语言中,`enum`(枚举)是一种特殊的类,用于定义一组固定的常量。枚举在很多场景下非常有用,例如表示状态、角色、颜色等有限且不变的集合。本篇将深入探讨Java中如何使用enum进行枚举遍历。 1. **枚举...

Global site tag (gtag.js) - Google Analytics