网站首页 > java教程 正文
Java枚举是一个特殊的类,一般就表示一组常量,在生活中也可以拿例子来解释Java枚举,比如一周有七天,一年有十二个月,人的性别只有男和女等。今天小编将为大家带来大数据编程入门:Java枚举这篇文章来详细介绍Java枚举的用法。
一、Java枚举的简单入门
Java枚举类一般使用enum关键字来定义,各个常量被用以逗号来分割。
比如定义一个心情的枚举类。
enum Mood
{
Happy,Sad,Excite;
}
在上面的枚举类Mood心情常量有Happy、Sad、Excite,分别表示开心、伤心、激动。
使用实例:
enum Mood
{
Happy,Sad,Excite;
}
public class Test
{
// 执行输出结果
public static void main(String[] args)
{
Mood m1 = Mood.Happy;
System.out.println(m1);
}
}
输出结果为:Happy
二、内部类中使用枚举
枚举类也可以声明在内部类中:
public class Test
{
enum Mood
{
Happy,Sad,Excite;
}
// 执行输出结果
public static void main(String[] args)
{
Mood m1 = Mood.Happy;
System.out.println(m1);
}
}
输出结果为:
每个枚举都是通过Class在内部实现的,所有枚举值都是 public static final的。
以上的枚举类Mood转化在内部类实现:
class Mood
{
public static final Mood Happy = new Mood();
public static final Mood Sad= new Mood();
public static final Mood Excite = new Mood();
}
三、迭代枚举元素
可以使用for语句迭代枚举元素:
实例:
enum Mood
{
Happy,Sad,Excite;
}
public class MyClass {
public static void main(String[] args) {
for (Mood myVar : Mood.values()) {
System.out.println(myVar);
}
}
}
运行结果:
四、在 switch 中使用枚举类
枚举类通常用于switch语句,比如:
enum Mood
{
Happy,Sad,Excite;
}
public class MyClass {
public static void main(String[] args) {
Mood myVar = Mood.Sad;
switch(myVar) {
case Happy:
System.out.println("开心");
break;
case Sad:
System.out.println("伤心");
break;
case Excite:
System.out.println("激动");
break;
}
}
}
运行结果:
五、values(), ordinal() 和 valueOf() 方法
enum定义的枚举类默认继承Java.lang.Enum类,实现java.lang.serializable和java.lang.compatible接口。
values()、order()和valueof()方法位于java.lang.Enum类中:
Values()返回枚举类中的所有值。
order()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
实例:
enum Mood
{
Happy,Sad,Excite;
}
public class Test
{
public static void main(String[] args)
{
// 调用 values()
Mood[] arr = Mood.values();
// 迭代枚举
for (Mood Moo : arr)
{
// 查看索引
System.out.println(Moo + " at index " + Moo.ordinal());
}
// 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
System.out.println(Mood.valueOf("Happy"));
// System.out.println(Mood.valueOf("WHITE"));
}
}
运行结果:
六、枚举类成员
与普通类一样,枚举可以使用自己的变量、方法和构造函数,构造函数只能使用私有访问修饰符,因此不能在外部调用它们。
枚举可以包含具体和抽象的方法,如果枚举类具有抽象方法,枚举类的每个实例都必须实现它。
实例:
enum Mood
{
Happy,Sad,Excite;
// 构造函数
private Mood()
{
System.out.println("Constructor called for : " + this.toString());
}
public void MoodInfo()
{
System.out.println("Universal Mood");
}
}
public class Test
{
// 输出
public static void main(String[] args)
{
Mood m1 = Mood.Happy;
System.out.println(m1);
m1.MoodInfo();
}
}
运行结果:
以上就是关于大数据编程入门:Java枚举的全部内容了,希望这篇文章可以帮助到大家~
猜你喜欢
- 2024-10-06 关于Java中枚举Enum的深入剖析(java中枚举类型的使用)
- 2024-10-06 常用类及枚举类(一)(枚举类和普通类的区别)
- 2024-10-06 JAVA ---- 枚举/注解/反射(java中枚举的作用)
- 2024-10-06 深入剖析Java Enum类型(javaenum使用实例)
- 2024-10-06 Java enum——不一样的枚举对象(java 枚举使用)
- 2024-10-06 Java的enum的用法详解(java enum使用)
- 2024-10-06 学习廖雪峰的JAVA教程---java核心类(枚举类)
- 2024-10-06 Java枚举(JAVA枚举类型怎么用)
- 2024-10-06 java高级特性之泛型和枚举(java 泛型实现)
- 2024-10-06 java里枚举非常实用的3个方法,程序员一般都不注意
你 发表评论:
欢迎- 最近发表
-
- 你真的会用 Java 中的线程池吗?多个企业级线程池工具类封装实践
- 线程池的实现原理、优点与风险、以及四种线程池实现
- Java线程池ThreadPoolExecutor实现原理剖析
- 深入分析线程池的实现原理(线程池是干嘛的)
- 一文搞懂JAVA线程池工作原理(java线程池的工作流程)
- Java线程池的工作原理(java线程池的实现原理)
- 5分钟读懂C#中TcpClient、TcpListener和Socket三个类的角色
- JVM对象的创建过程(jvm运行过程中创建的对象一般存放在方法区)
- 对象组成与Java内存模型JMM分析(java对象在内存中存储的结构)
- JVM对象内存分配详细过程(栈上分配->TLAB->老年代->Eden区)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)