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;
Sy(m1);
}
}
输出结果为:Happy
二、内部类中使用枚举
枚举类也可以声明在内部类中:
public class Test
{
enum Mood
{
Happy,Sad,Excite;
}
// 执行输出结果
public static void main(String[] args)
{
Mood m1 = Mood.Happy;
Sy(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()) {
Sy(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:
Sy("开心");
break;
case Sad:
Sy("伤心");
break;
case Excite:
Sy("激动");
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)
{
// 查看索引
Sy(Moo + " at index " + Moo.ordinal());
}
// 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
Sy("Happy"));
// Sy("WHITE"));
}
}
运行结果:
六、枚举类成员
与普通类一样,枚举可以使用自己的变量、方法和构造函数,构造函数只能使用私有访问修饰符,因此不能在外部调用它们。
枚举可以包含具体和抽象的方法,如果枚举类具有抽象方法,枚举类的每个实例都必须实现它。
实例:
enum Mood
{
Happy,Sad,Excite;
// 构造函数
private Mood()
{
Sy("Constructor called for : " + ());
}
public void MoodInfo()
{
Sy("Universal Mood");
}
}
public class Test
{
// 输出
public static void main(String[] args)
{
Mood m1 = Mood.Happy;
Sy(m1);
m1.MoodInfo();
}
}
运行结果:
以上就是关于大数据编程入门:Java枚举的全部内容了,希望这篇文章可以帮助到大家~