`
乌托邦之爱
  • 浏览: 282229 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

枚举的使用实例

阅读更多

此类是一个同事给我的实例,通过示例注释了一些个人理解的东西可能是错误的理解,不过为了方便记忆暂时用于此理解方式,然后在详细查询资料.

 

public enum EnumTrafficLamp 
{
	//每一个枚举类RED相当于一个继承了EnumTrafficLamp枚举类的子类
	//EnumTrafficLamp的构造方法设定了变量RED的构造方法中才可以传参
	//通过将枚举RED可以调用其他的GREEN枚举
	RED (15) {
		public EnumTrafficLamp nextLight() {
		return GREEN;
		}
		},
		GREEN(30) {
		public EnumTrafficLamp nextLight() {
		return YELLOW;
		}
		},
		YELLOW(5) {
		public EnumTrafficLamp nextLight() {
		return RED;
		}
		};
		private int time;
		private EnumTrafficLamp() {
		}
		private EnumTrafficLamp(int time) {
		this.time = time;
		}
		//这里是为了上面的枚举中可以使用方法,
		//相当于在EnumTrafficLamp定义了一个抽象方法
		//其他枚举类因为是继承了EnumTrafficLamp类,所以
		//必须实现EnumTrafficLamp类中的抽象方法nextLight()
		public abstract EnumTrafficLamp nextLight();
		public String toString() {
		return name() + ":" + time;
		}
		public EnumTrafficLamp next() {

		if (this.name().equals("RED")) {
		return GREEN;
		} else if (this.name().equals("GREEN")) {
		return YELLOW;
		} else {
		return RED;
		}
		}
		public static void main(String[] args) {
		EnumTrafficLamp lamp = EnumTrafficLamp.RED;
		while (true) {
		System.out.println(lamp.next());
		//lamp的对象是RED返回结果是GREEN,这样就可以通过GREEN去调用另一个
		//为此获得调用循环功能
		lamp = lamp.next();
		}
		}

}

 

public enum TestPojo 
{
	 	A(){
	 		public TestPojo abc()
	 		{
	 			return B;
	 		}
	 	},B(){
	 		public TestPojo abc()
	 		{
	 			return C;
	 		}
	 	},C(){
	 		public TestPojo abc()
	 		{
	 			return A;
	 		}
	 	};
	 	
	 public abstract TestPojo abc();


	 	public TestPojo next()
	 	{
	 		if(name().equals("A"))
	 		{
	 			return B;
	 		}else if(name().equals("B")){
	 			return C;	
	 		}else
	 		{
	 			return A;
	 		}
	 		
	 	}
	 	public static void main(String[] args)
		{
			TestPojo t=TestPojo.A;
			
			while(true){
				System.out.println(t.next());
			t=t.next();
			}
		}
}
 
0
0
分享到:
评论

相关推荐

    java枚举实例代码

    虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    4. **通过名称获取枚举实例**:如果已知枚举的名称,可以使用`valueOf()`方法获取对应的枚举实例。 ```java Color colorFromName = colorClass.valueOf("RED"); // 获取到RED枚举实例 ``` 5. **枚举的构造函数**:...

    java枚举的一个例子

    ### Java枚举详解 ...通过这个简单的例子,我们不仅可以看到如何定义和使用枚举,还能了解到枚举的一些高级用法,比如自定义构造器和方法。枚举是Java中一个非常实用的功能,合理地利用它可以显著提升代码的质量。

    属性及枚举实例

    属性和枚举实例在软件设计中非常常见,它们有助于保持代码的整洁,提高可读性,同时提供了一种强大的方式来控制数据的访问和行为。在处理复杂业务逻辑时,正确地使用属性和枚举能够减少错误,增强代码的可扩展性和可...

    枚举类型的复杂用法:非常有用的枚举类型使用例子,简化了数据采集通道的定义。

    非常有用的枚举类型使用例子,简化了数据采集通道的定义。

    C# 枚举类型的实例说明

    在本文中,我们将深入探讨C#枚举类型的实例说明,以及其主要的使用方法。 ### 枚举类型的基本定义 在C#中,枚举类型的定义是通过`enum`关键字来实现的。例如,我们可以通过以下方式定义一个表示一周七天的枚举类型...

    USB枚举实例讲解\实例讲解USB的枚举(配置)过程

    通过本文的学习,我们不仅了解了USB枚举的基本概念及其重要性,还深入掌握了如何使用USB Monitor 2.26这款工具来进行USB设备枚举过程的监控和分析。这对于我们理解USB设备如何与主机通信,以及在开发或调试USB相关...

    易语言文件枚举实例

    易语言文件枚举实例源码,文件枚举实例,枚举文件1,枚举文件2,取值,枚举文件3,枚举文件4,取变量数据地址_文本型,API枚举线程,Push,PopN,Pop0,Count,SendMessage_Str,FindFirstFileA,FindClose,FindNextFileA,...

    Java面试枚举从使用到原理

    1. 安全性:枚举类型保证了类型安全,不允许创建未声明的枚举实例,有效防止了硬编码错误。 2. 内置功能:枚举提供了许多内置的比较和遍历功能,如`values()`方法返回所有枚举常量的数组,`equals()`和`hashCode()`...

    java枚举的一个实例

    枚举在多线程环境下也是安全的,因为它们是单例的,这意味着枚举实例的创建是线程安全的,无需担心并发问题。此外,枚举类型不能被实例化,除非通过`values()`或`valueOf()`方法,这增加了代码的可控性。 在Java中...

    枚举各类波形实例_枚举_数字波形_

    在本案例中,“枚举各类波形实例”指的是通过编程实现对不同数字波形的枚举定义,以便在代码中方便地引用和操作这些波形。 1. **数字波形的基本概念**: 数字波形是模拟信号经过采样和量化后的离散表示,常见的...

    火山PC枚举窗口例子.rar

    【火山PC枚举窗口例子】是一个关于Windows操作系统编程的示例项目,主要涉及的是如何在PC上枚举并管理窗口。这个项目可能包含了用于演示这一功能的源代码和解决方案文件。"火山PC"可能指的是一个特定的开发工具或...

    枚举基本操作及说明(实例)VS2008

    例如,一个简单的使用枚举的实例可能是定义一个用户角色的枚举: ```csharp enum UserRole { Guest, User, Moderator, Admin } ``` 然后在处理用户权限时,可以根据用户的枚举角色来决定他们能访问哪些功能。 7...

    JAVA的枚举实例以及应用

    JAVA的枚举实例以及应用

    C++枚举类型实例

    C++枚举类型的简单实例,设置了enum result{win,lose,tie,cancle} 实现了这四种情况的顺序输出。

    C++ SerialEnum 串口枚举实例

    总结来说,`C++ SerialEnum 串口枚举实例`涉及到的主要知识点包括串口通信的基本概念、Windows WinAPI或Linux的串口操作方法,以及如何在C++中实现串口枚举的类设计。通过理解和应用这些知识,开发者可以有效地管理...

    使用枚举规范方法命名

    `getName()`方法是对枚举实例的默认名字进行首字母大写的格式化,`fromHex()`是静态方法,用于根据十六进制代码查找对应的枚举实例。 三、枚举的继承与接口 Java枚举可以实现接口,但不能继承其他枚举。例如,如果...

    实例175 - 枚举使用的简介

    在本实例中,我们将探讨枚举的使用,主要以Java语言为例,但许多其他编程语言也提供了类似的概念。通过枚举,我们可以更清晰地表达代码中的意图,提高代码的可读性和可维护性。 枚举在Java中是一种特殊的类,通过...

    使用JS枚举简化if else

    以下是一个使用if...else的经典例子: ```javascript function printColor(color) { if (color === 'red') { console.log('红色'); } else if (color === 'green') { console.log('绿色'); } else if (color =...

    java中枚举的使用

    枚举在Java中的使用不仅提高了代码的可读性和可维护性,还避免了传统常量类的一些潜在问题,如类型安全和非法实例化。 首先,我们来看枚举的基本定义。枚举类型的声明类似于类的声明,但用关键字`enum`开头。例如:...

Global site tag (gtag.js) - Google Analytics