首页 / JAVA / [JAVA]枚举类型的应用
[JAVA]枚举类型的应用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[JAVA]枚举类型的应用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2725字,纯文字阅读大概需要4分钟。
内容图文
![[JAVA]枚举类型的应用](/upload/InfoBanner/zyjiaocheng/654/4a342e6c4aef485dbd28a151d6007269.jpg)
本文介绍枚举类的概念和开发过程中枚举的用法。
枚举类使用enum关键字定义,enum默认继承自Enum类,由于java单继承的特点,enum类无法再继承其他父类
一、枚举类的特性
1、简单枚举类的定义
枚举类用关键字enum定义,成员变量之间用逗号分隔,最后一个成员变量用分号结束。枚举类的命名建议加上Enum后缀。
代码如下:
public enum FruitEnum {
APPLE,
ORANGE,
BANANA,
PEAR
}
枚举的成员变量均为常量,可以通过FruitEnum.APPLE
调用,构造方法被默认强制是私有,禁止通过new关键字实例化。
枚举类自带values()方法可以返回该枚举的所有实例
2、添加自定义方法
枚举类继承自Enum,默认实现了很多常用方法,包括:toString(),compareTo(),equals(),hashCode()
等。
我们也可以给枚举类添加自定义方法,需要注意如下几点:
1、自定义方法必须在enum实例之后;
2、如果显示指明了构造方法,必须是默认(enum中默认既是私有)或私有
3、最后一个实例需要加分号
例如,给简单示例增加要给重写的toString()方法:
public enum FruitEnum {
APPLE,
ORANGE,
BANANA,
PEAR;
@Override
public String toString() {
return "fruit:"+super.toString();
}
}
3、实现构造函数
public enum FruitEnum {
/**
* description 苹果
**/
APPLE("苹果", 1),
/**
* description 橘子
**/
ORANGE("橘子", 2),
/**
* description 香蕉
**/
BANANA("香蕉", 3),
/**
* description 梨
**/
PEAR("梨", 4),
/**
* description 猕猴桃
**/
KIWI_FRUIT("猕猴桃", 5);
private String description;
private final Integer value;
/**
* description 构造函数
* param [description, value]
**/
FruitEnum(String description, int value) {
this.description = description;
this.value = value;
}
/**
* description 根据枚举值获取枚举对象
* param [value]
* return com.company.enumtest.FruitEnum
* author 郑晓龙
* createTime 2019/12/3 10:35
**/
public static FruitEnum getFruitEnumByValue(Integer value) {
if (value == null) {
return null;
}
for (FruitEnum fruitEnum : FruitEnum.values()) {
if (fruitEnum.ordinal() == value) {
return fruitEnum;
}
}
throw new NoSuchElementException();
}
public String getDescription() {
return description;
}
public Integer getValue() {
return value;
}
}
二、枚举的应用场景
1、switch语句中使用枚举
case语句中不需要写枚举类名,可以直接写枚举实例,例如:
FruitEnum fruit = FruitEnum.KIWI_FRUIT;
switch (fruit){
case APPLE:
System.out.println("get apple!");
break;
case KIWI_FRUIT:
System.out.println("get KIWI_FRUIT!");
break;
default:
System.out.println("default");
}
2、枚举实现单例模式
由于枚举天然的静态化和不可实例化,可以用于单例模式
public enum Singleton {
INSTANCE;
/**
* description 无参构造函数(可以省略)
**/
private Singleton(){
System.out.println("I'm singleton");
}
public static void doSomething(){
System.out.println("I'm doing!");
}
}
main方法中使用单例:
Singleton.doSomething();
Singleton.doSomething();
执行结果:
I'm singleton
I'm doing!
I'm doing!
可以看到,当Singleton类第一次被调用时,实例化了该单例类,并执行了方法,第二次直接执行了方法。
参考:
- 深入浅出单实例SINGLETON设计模式
- 《Java编程思想第四版》P590
内容总结
以上是互联网集市为您收集整理的[JAVA]枚举类型的应用全部内容,希望文章能够帮你解决[JAVA]枚举类型的应用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。