此类是一个同事给我的实例,通过示例注释了一些个人理解的东西可能是错误的理解,不过为了方便记忆暂时用于此理解方式,然后在详细查询资料.
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();
}
}
}
分享到:
相关推荐
虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...
4. **通过名称获取枚举实例**:如果已知枚举的名称,可以使用`valueOf()`方法获取对应的枚举实例。 ```java Color colorFromName = colorClass.valueOf("RED"); // 获取到RED枚举实例 ``` 5. **枚举的构造函数**:...
### Java枚举详解 ...通过这个简单的例子,我们不仅可以看到如何定义和使用枚举,还能了解到枚举的一些高级用法,比如自定义构造器和方法。枚举是Java中一个非常实用的功能,合理地利用它可以显著提升代码的质量。
属性和枚举实例在软件设计中非常常见,它们有助于保持代码的整洁,提高可读性,同时提供了一种强大的方式来控制数据的访问和行为。在处理复杂业务逻辑时,正确地使用属性和枚举能够减少错误,增强代码的可扩展性和可...
非常有用的枚举类型使用例子,简化了数据采集通道的定义。
在本文中,我们将深入探讨C#枚举类型的实例说明,以及其主要的使用方法。 ### 枚举类型的基本定义 在C#中,枚举类型的定义是通过`enum`关键字来实现的。例如,我们可以通过以下方式定义一个表示一周七天的枚举类型...
通过本文的学习,我们不仅了解了USB枚举的基本概念及其重要性,还深入掌握了如何使用USB Monitor 2.26这款工具来进行USB设备枚举过程的监控和分析。这对于我们理解USB设备如何与主机通信,以及在开发或调试USB相关...
易语言文件枚举实例源码,文件枚举实例,枚举文件1,枚举文件2,取值,枚举文件3,枚举文件4,取变量数据地址_文本型,API枚举线程,Push,PopN,Pop0,Count,SendMessage_Str,FindFirstFileA,FindClose,FindNextFileA,...
1. 安全性:枚举类型保证了类型安全,不允许创建未声明的枚举实例,有效防止了硬编码错误。 2. 内置功能:枚举提供了许多内置的比较和遍历功能,如`values()`方法返回所有枚举常量的数组,`equals()`和`hashCode()`...
枚举在多线程环境下也是安全的,因为它们是单例的,这意味着枚举实例的创建是线程安全的,无需担心并发问题。此外,枚举类型不能被实例化,除非通过`values()`或`valueOf()`方法,这增加了代码的可控性。 在Java中...
在本案例中,“枚举各类波形实例”指的是通过编程实现对不同数字波形的枚举定义,以便在代码中方便地引用和操作这些波形。 1. **数字波形的基本概念**: 数字波形是模拟信号经过采样和量化后的离散表示,常见的...
【火山PC枚举窗口例子】是一个关于Windows操作系统编程的示例项目,主要涉及的是如何在PC上枚举并管理窗口。这个项目可能包含了用于演示这一功能的源代码和解决方案文件。"火山PC"可能指的是一个特定的开发工具或...
例如,一个简单的使用枚举的实例可能是定义一个用户角色的枚举: ```csharp enum UserRole { Guest, User, Moderator, Admin } ``` 然后在处理用户权限时,可以根据用户的枚举角色来决定他们能访问哪些功能。 7...
JAVA的枚举实例以及应用
C++枚举类型的简单实例,设置了enum result{win,lose,tie,cancle} 实现了这四种情况的顺序输出。
总结来说,`C++ SerialEnum 串口枚举实例`涉及到的主要知识点包括串口通信的基本概念、Windows WinAPI或Linux的串口操作方法,以及如何在C++中实现串口枚举的类设计。通过理解和应用这些知识,开发者可以有效地管理...
`getName()`方法是对枚举实例的默认名字进行首字母大写的格式化,`fromHex()`是静态方法,用于根据十六进制代码查找对应的枚举实例。 三、枚举的继承与接口 Java枚举可以实现接口,但不能继承其他枚举。例如,如果...
在本实例中,我们将探讨枚举的使用,主要以Java语言为例,但许多其他编程语言也提供了类似的概念。通过枚举,我们可以更清晰地表达代码中的意图,提高代码的可读性和可维护性。 枚举在Java中是一种特殊的类,通过...
以下是一个使用if...else的经典例子: ```javascript function printColor(color) { if (color === 'red') { console.log('红色'); } else if (color === 'green') { console.log('绿色'); } else if (color =...
枚举在Java中的使用不仅提高了代码的可读性和可维护性,还避免了传统常量类的一些潜在问题,如类型安全和非法实例化。 首先,我们来看枚举的基本定义。枚举类型的声明类似于类的声明,但用关键字`enum`开头。例如:...