关于枚举的一些总结

枚举的概述:

              枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个。

普通的类如何实现枚举功能?

        1.私有的构造方法

    2.每个元素分别用一个公有的静态成员变量表示。

3.可以有若干公有方法或抽象方法

例如:定义一个WeekDay的类来模拟枚举功能

public  class EnumTest {


/**
* 定义一个WeekDay的类来模拟枚举功能
*/
public static void main(String[] args) {

WeekDay   weekday=WeekDay.MON;
System.out.println(weekday.nextDay());
}


}

public   class WeekDay {


/**
* 定义一个WeekDay的类来模拟枚举功能
*/
WeekDay(){

}
public final static WeekDay SUN=new   WeekDay();
public final static WeekDay MON=new   WeekDay();
public  WeekDay nextDay(){
if (this==SUN) {
return MON;
}else {
return SUN;
}
}
public String toString(){
return this==SUN ? "SUN":"MON";

}
}

注意:可以采用抽象的方法定义上文中nextDay,就可以将if和else语句转移成一个个独立的类。

上文代码改为:

public  abstract class WeekDay {


/**
* 定义一个WeekDay的类来模拟枚举功能
*/
private WeekDay(){

}
/*public final static WeekDay SUN=new   WeekDay();
public final static WeekDay MON=new   WeekDay();*/

public final static WeekDay SUN=new WeekDay(){
public WeekDay nextDay(){
return MON;

}
};
public final static WeekDay MON=new WeekDay(){
public WeekDay nextDay(){
return SUN;

}
};
public abstract WeekDay nextDay();
/*public  WeekDay nextDay(){
if (this==SUN) {
return MON;
}else {
return SUN;
}
}*/
public String toString(){
return this==SUN ? "SUN":"MON";

}
}

枚举的基本应用:

       交通灯:

public abstract class TrafficlampDemo {


/**
* 枚举交通灯
*/
public static void main(String[] args) {

System.out.println(trafficlamp.YELLOW);
System.out.println(trafficlamp.RED); 
System.out.println(trafficlamp.GREEN); 



}


public enum trafficlamp{
RED(30){
public  trafficlamp nextlamp(){
System.out.println("暂停30秒"); 
   return GREEN;
}
},
GREEN(45){
public  trafficlamp nextlamp(){
System.out.println("放行45秒"); 
return YELLOW;
}
},
YELLOW(5){
public  trafficlamp nextlamp(){
System.out.println("暂停5秒"); 
return RED;
}
};

public abstract trafficlamp nextlamp();

private int time;
private trafficlamp(int time){
this.time=time;
System.out.println("先把枚举所有元素加载进内存   "+this.name()); 


}
}
}

枚举类总结:

1、枚举类是一种特殊形式的Java类。

2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象。

3、枚举类与Java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数。

但枚举类的构造函数必须为私有的(这点不难理解)。

4、枚举类也可以实现接口、或继承抽象类。

5、JDK 1.5 中扩展了switch语句,它除了可以接收int, byte, char, short,String外,还可以接收一个枚举类型。

6、若枚举类只有一个枚举值,则可以当作单例设计模式使用。

7、枚举类的实例变量是把所以的枚举实例都加载一次的。

如果调用了某个枚举类,那么该枚举类先把枚举类里面的所有元素都先加载一次。

注意:

1、枚举只有一个成员时,就可以作为一种单例的实现方式。

2、查看生成的class文件,可以看到内部类对应的class文件。

也就是枚举的元素都是一个内部类实例对象。



























































































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
### 回答1: TypeScript的枚举是一种数据类型,用于定义一组命名的常量。枚举可以帮助开发人员更好地组织代码,并提高代码的可读性和可维护性。枚举可以包含数字、字符串或混合类型的值,并且可以具有自定义的值。在TypeScript中,枚举可以通过名称或值进行访问。枚举还可以用于类型注释和类型推断。 ### 回答2: Typescript的枚举是一种为具体值赋予有意义的名称的数据类型。枚举可以理解为定义了一组定义的常量集合,可以使用这些常量来表示某个特定的状态或值。 在Typescript中,我们使用`enum`关键字来创建一个枚举类型。例如,我们可以创建一个表示颜色的枚举类型: ``` enum Color { Red, Green, Blue } ``` 在这个例子中,我们定义了一个名为Color的枚举类型,包含了三个常量值Red、Green和Blue。默认情况下,这些常量的值将依次递增,从0开始。可以通过指定值来改变默认的递增行为: ``` enum Color { Red = 1, Green = 2, Blue = 4 } ``` 在这个例子中,我们将Red的值设置为1,Green的值设置为2,Blue的值设置为4。 枚举类型可以用于表示一系列的选项,通过使用枚举名和常量名称来访问具体的值。例如,我们可以使用Color.Red来表示红色。 枚举类型还可以使用枚举的值来进行比较和判断,这样可以避免使用魔法数值。此外,枚举类型还提供了一些便利的方法,例如`Object.keys(Color)`可以用于获取枚举中所有常量的名称。 总之,Typescript的枚举是一种方便的数据类型,能够为常量赋予可读性高的名称,提高代码的可维护性和可读性。 ### 回答3: TypeScript的枚举是一种用于定义一组具有命名值的数据类型。它可以提供更好的代码可读性和可维护性。 枚举使用关键字"enum"来定义,并且可以包含一个或多个枚举成员。每个枚举成员都有一个名称和与之关联的值。这些值可以是数字、字符串或布尔值。 枚举的优势之一是可以使用值或名称来访问枚举成员。例如,如果有一个颜色的枚举,可以通过值来访问相应的名称,或者通过名称来访问相应的值。 枚举成员也可以指定一个初始值。如果没有指定初始值,那么枚举成员的值将会自动递增。 枚举还支持反向映射。这意味着可以通过枚举成员的值来获取相应的名称,或通过名称来获取相应的值。 枚举还可以使用具有枚举成员值的表达式进行计算。这在一些复杂的场景中非常有用。 另一个有用的功能是可以将枚举用作类型。这样,变量只能取枚举成员的值,而不能取其他任何值。 总结而言,TypeScript的枚举是一种有助于提高代码可读性和可维护性的数据类型。它提供了更好的代码组织和更明确的值表示方式,并且支持访问和计算枚举成员的各种功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值