掌握JDK1.5枚举类型
Enum:Java中的新星关键字
Enum,这个由Sun全新引进的关键字,看起来就像一个特殊的class。它拥有自身的变量,可以定义方法,并能实现一个或多个接口。当我们声明一个enum类型时,需要注意它的一些独特特征。
1. Enum不能有公开的构造函数。这保证了客户端代码无法新建enum的实例,确保了枚举类型的严格控制。
2. 所有的枚举值都是public,static,final的。值得注意的是,这仅针对枚举值。我们可以在enum中定义其他任何类型的非枚举变量,这些变量可以使用任何想要的修饰符。
3. Enum默认实现了java.langparable接口,这意味着我们可以对枚举值进行比较。
4. Enum覆载了toString方法。如果我们调用Color.Blue.toString(),它将默认返回字符串"Blue"。
6. Enum还提供了values方法,使我们能够轻松地遍历所有枚举值。
7. Enum还有一个ordinal方法,返回枚举值在枚举类中的顺序,这个顺序根据枚举值声明的顺序而定。
了解了这些基本特性后,让我们看看如何在实际中使用它们。
1. 遍历所有枚举值:由于存在values方法,我们可以轻松地使用foreach循环来遍历枚举值。例如:
```java
for (Color c : Color.values())
System.out.println("Find value: " + c);
```
2. 在enum中定义方法和变量:我们可以在enum中定义方法和变量,就像定义普通的class一样。例如,我们可以为Color增加一个方法,随机返回一个颜色。需要注意的是,方法和变量的定义必须放在所有枚举值定义的后面。
3. 覆载toString和valueOf方法:Enum提供了toString和valueOf方法,很多时候我们需要覆载这些方法以满足特定的需求。覆载这些方法的方式和覆载普通class的方法没有区别。在覆载toString的时候,我们也应该覆载valueOf方法,以保持它们的一致性。
4. 使用构造函数:虽然enum不能有公开的构造函数,但我们仍然可以定义私有的构造函数,并在enum内部使用。
Enum是Java中一个非常有用的工具,它允许我们创建具有特定特征和行为的类型。通过了解和使用Enum的这些特性,我们可以更好地控制和组织我们的代码。色彩之韵:深入理解Java中的枚举类型Color
在Java编程中,枚举(Enum)是一种特殊的类,用于表示固定数量的常量值。这里我们有一个名为Color的枚举,为每一种颜色提供了一个说明信息。
我们定义了三个颜色:Red、Green和Blue,并为每个颜色赋予了一个描述性的字符串。接着,我们定义了一个私有的字符串变量desc和一个构造函数,该构造函数接受一个字符串参数并赋值给desc。这个构造函数必须被定义为私有的,以确保客户代码无法创建枚举值的实例。这是因为枚举值是public static final的常量,只能在枚举类内部进行实例化。
除了存储数据,枚举还可以定义方法。我们可以为每个枚举值定义其独特的方法。以Color为例,我们可以为每个颜色定义一个toString方法,使其返回特定的字符串。这样,当我们调用Red、Green或Blue的toString方法时,会分别返回"Color.Red"、"Color.Green"和"Color.Blue"。这种设计使得代码更加清晰易懂,因为每个颜色的表示方式已经明确地定义在相应的枚举值中。
枚举作为一种全新的数据类型,旨在帮助程序员写出更简单易懂、结构清晰的代码。虽然Java的枚举类型提供了许多高级特性,如实现接口和定义方法,但在实际开发中,我们通常只需要使用其基本功能。过度使用高级特性可能会使代码变得复杂,违背了枚举设计的初衷。
枚举是Java中一个非常有用的工具,可以帮助我们更好地组织和管理代码。通过Color这个简单的例子,我们可以看到枚举类型如何使代码更加清晰、易于理解。在实际项目中,我们可以根据需求灵活运用枚举,使代码更加规范、易于维护。
编程语言
- 掌握JDK1.5枚举类型
- 使用JavaScript开发跨平台的桌面应用详解
- 浅析php中array_map和array_walk的使用对比
- VUE重点问题总结
- PHP预定义超全局数组变量小结
- 利用JavaScript阻止表单提交的两种方法
- js脚本分页代码分享(7种样式)
- 根据ip调用新浪api获取城市名并转成拼音
- js实现文件上传表单域美化特效
- JavaScript的Backbone.js框架环境搭建及Hellow world示例
- ASP.NET如何使用web服务的会话状态
- 老生常谈php中传统验证与thinkphp框架(必看篇)
- 指定网页的doctype解决CSS Hacking方法总结
- js+AJAX异步从优酷专辑中采集所有视频及信息
- php类自动装载、链式操作、魔术方法实现代码
- 浅析Laravel5中队列的配置及使用