`

6、枚举enum

阅读更多

一、enum枚举

 

  1. 枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象
  2. 为什么要有枚举
  3. 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0...
  4. 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。
  5. 枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目的

二、枚举的基本应用

 

public class EnumDemo 
{
	public static void main(String[] args) 
	{
		WeekDay w = WeekDay.SUN;
		System.out.println(w);
		System.out.println(w.name());
		System.out.println(w.ordinal());
		System.out.println(w.getClass());

		//将字符串转成WeekDay对象
		System.out.println(WeekDay.valueOf("MON"));
		//得到WeekDay类型的数组
		System.out.println(WeekDay.values().length);
	}
}
enum WeekDay
{
	SUN,MON,TUS,WEN,THU,FRI,SAT;//分号可以不写,但是如果下面还有内容就必须写分号
}

 

  1. 枚举也可以定义构造方法,成员变量,普通方法和抽象方法
  2. 如果有构造方法必须定义成私有
  3. 枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后面要有分号与其他成员分隔。
  4. 把枚举中的成员方法或变量等放在枚举元素的前面,编译器报告错误
  5. 枚举元素MON和MON()的效果一样,都是调用默认的构造方法
  6. 枚举只有一个成员时,就可以作为一种单例的实现方式
public class EnumDemo 
{
	public static void main(String[] args) 
	{
		WeekDay w = WeekDay.SUN;
	}
}
enum WeekDay
{
	SUN,MON(3),TUS,WEN,THU,FRI,SAT;
	private WeekDay()
	{
		System.out.println("first");
	}
	private WeekDay(int num)
	{
		System.out.println("second "+num);
	}
}

 

/**
 * 模拟交通灯
 */
public class EnumDemo 
{
	public static void main(String[] args) 
	{
		TrafficLamp lamp = TrafficLamp.GREEN;
	}
}
enum TrafficLamp
{
	RED(30)
	{
		public TrafficLamp nextLamp()
		{
			return GREEN;
		}
	},
	GREEN(45)
	{
		public TrafficLamp nextLamp()
		{
			return YELLOW;
		}
	},
	YELLOW(5)
	{
		public TrafficLamp nextLamp()
		{
			return RED;
		}
	};
	private int time;
	private TrafficLamp(int time)
	{
		this.time  = time;
	}
	public abstract TrafficLamp nextLamp();
}

 

分享到:
评论

相关推荐

    Java枚举类型Enum的用法

    6. **枚举常量的遍历** 可以通过for-each循环遍历枚举的所有实例,如: ```java for (Color color : Color.values()) { System.out.println(color); } ``` 7. **枚举与switch语句** Java中的switch语句支持...

    枚举enum的一些案例

    枚举Enum的一些案例 枚举(enum)是一种特殊的值类型,它从 System.Enum 继承而来,并为基础的基元类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数...

    java enum 枚举 学习资料

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

    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枚举类...

    枚举语句enum用法详解

    枚举(enum)在编程语言中是一种非常有用的类型,它允许我们定义一组命名常量,这些常量通常代表一组相关的值。在C#中,枚举(enum)被广泛用于增强代码的可读性和可维护性。下面我们将深入探讨C#中的枚举用法。 一...

    枚举enum和switch 的使用

    枚举(Enum)在编程语言中是一种非常有用的数据类型,它允许我们定义一组相关的命名常量,便于代码的可读性和维护。在C#中,枚举是通过`enum`关键字来创建的。在给定的示例中,`BoxType`枚举定义了三种箱型:...

    c#遍历枚举(ENUM)类型的方法

    c#遍历枚举(ENUM)类型的方法,简单实用,适合c#初学者

    C++中枚举类型(enum)

    ### C++中的枚举类型(Enum) 在C++编程语言中,枚举(`enum`)是一种用户定义的类型,它由一组具有整数值的命名常量组成。这些值可以被程序用来代替数字,使代码更具可读性,并且能够表示特定范围内的固定集合。 ...

    enum枚举的方法

    enum枚举的方法

    Java中的枚举类型Enum示例源代码

    Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...

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

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

    浅谈Python 的枚举 Enum

    首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 注意: 定义枚举时,成员名称不允许重复  默认情况下,不同的成员值允许相同。但是两个相同值的成员,第二个成员的名称被视作第一个成员的别名...

    java中enum枚举的详细用法

    6. 枚举的序列化 默认情况下,枚举是可序列化的。如果不需要枚举实例被序列化,可以声明枚举类实现`java.io.Serializable`接口,并添加`transient`关键字。 7. 枚举的常量与静态字段 枚举类中的字段默认是静态的...

    java枚举类型enum的使用

    ### Java 枚举类型 enum 的使用详解 #### 一、枚举类型概述 在 Java 中,枚举(enum)是一种特殊的类,它被用来表示一组固定的常量值。枚举类型自 JDK 1.5 开始引入,为开发者提供了一种更加安全、简洁的方式来...

    枚举类型的说明 enum

    枚举类型是一种特殊的类,实际上 enum 声明定义的类型就是一个类,这些类都是类库中 Enum 类的子类(java.lang.Enum)。它们继承了这个 Enum 中的许多有用的方法。 1、枚举类的特征 枚举类是特殊的类,其枚举值...

    enum枚举类的应用

    包含了关于枚举类的应用,以及枚举类和接口的组合应用,扩展映射关系。很有用的工具类。

    利用枚举enum编程进行博彩游戏的模拟(掷双骰子)

    利用自定的枚举类型,结合rand函数,结合C++编程进行博彩游戏的模拟(掷双骰子)

    C++枚举类型enum与enum class的使用

    C++枚举类型enum与enum class的使用 以下是C++枚举类型enum与enum class的使用的相关知识点: 一、什么是枚举类型? 枚举类型是一种特殊的数据类型,它的变量只能取枚举类型中定义的某个值。例如,性别只有男和女...

Global site tag (gtag.js) - Google Analytics