文档章节

Java中的枚举

静水楼台
 静水楼台
发布于 2017/04/13 12:42
字数 432
阅读 1
收藏 0

枚举的特征

①枚举类也是一种特殊形式的Java类。

②枚举类中声明的每一个枚举值代表枚举类的一个实例对象,所以枚举的所有实例对象都是常量

③与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。

④枚举类也可以实现接口、或继承抽象类。

⑤JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。

常用方法

Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。

常用方法:

name()  此方法返回enum实例声明时的名字,与toString()方法效果相同

ordinal() 此方法返回每个enum实例在声明时的顺序

valueof(Class enumClass, String name)

values() 此方法为隐式方法,每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。

带构造方法的枚举

①构造方法必须定义为private

   很明显,用到枚举是不想再有新的实例,枚举中的元素就是所有的实例

②构造方法可以带有参数

    和类的使用一样

③枚举常量RED和RED()一样,都是调用默认的构造方法

单例的枚举实现

若枚举类只有一个枚举值,则可以当作单例设计模式使用。

下面是用枚举实现的单例:

enum DB{
    instance;//单实例 
    
    public void function(){
       System.out.println("枚举中的其它方法");
    }
}

调用:

//枚举单例
DB d=DB.instance;
d.function();

本文转载自:http://blog.csdn.net/javandroid/article/details/8862698

静水楼台
粉丝 0
博文 85
码字总数 2334
作品 0
杭州
程序员
私信 提问
Java中枚举的线程安全性及序列化问题

来源:微信公众号 ,原创: Hollis --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字...

Java填坑之路
2018/08/02
0
0
为什么我墙裂建议大家使用枚举来实现单例。

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

2018/06/10
0
0
java 枚举(enum) 全面解读

简介 枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类....

jimmie_yang
2018/10/19
0
0
Java语言学习(十一):枚举类型和泛型

Java中一个重要的类型:枚举,它可以用来表示一组取值范围固定的变量,使用 enum 关键字定义枚举类型,其中元素不能重复,通常大写表示。利用Java的反射机制,可以在运行时分析类,如查看枚举...

海岸线的曙光
2018/07/18
82
0
Java高级部分笔记-------Java5.0的新特性

静态导入 1.1 JDK 1.5 增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。 1.2 语法:Import static 包名.类名.静态属性|静态方法|* ...

查封炉台
2014/04/21
617
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部