- 浏览: 44839 次
- 性别:
- 来自: 广州
文章分类
最新评论
http://blog.jobbole.com/31597/
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum Color { RED, GREEN, BLANK, YELLOW }
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } }
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum实例。
public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 普通方法 public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } //覆盖方法 @Override public String toString() { return this.index+"_"+this.name; } }
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } //接口方法 @Override public String getInfo() { return this.name; } //接口方法 @Override public void print() { System.out.println(this.index+":"+this.name); } }
用法六:使用接口组织枚举
public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }
用法七:关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
发表评论
-
职场观察:高薪需要什么?
2014-04-01 21:07 361http://xjsunjie.blog.51cto.com ... -
毕业五年来的回顾
2014-04-01 20:59 329http://luogangan.blog.51cto.co ... -
深处跳槽热浪中,跳与不跳该如何抉择?
2013-03-20 13:02 646深处跳槽热浪中,跳与不跳该如何抉择? 跳槽有哪些技巧和注意事项 ... -
面试 需要注意三种公司
2013-03-20 12:55 594来源:http://cuisuqiang.iteye.com ... -
面试 需要警惕三个问题
2013-03-20 12:54 553来源:http://cuisuqiang.ite ... -
离职 需要注意三个问题
2013-03-20 12:53 593来源:http://cuisuqiang.ite ... -
最具争议的10个编程观点
2013-02-12 22:21 652你认为最具争议的编程观点是什么?C#专家Jon Skeet曾 ... -
设计高可用和高负载的网站系统
2012-12-10 12:57 562随着网站的运营,用户 ... -
大型互联网网站架构心得
2012-12-10 12:52 630大型互联网网站架构心 ... -
世界最大的PHP站点 Facebook后台技术探秘
2012-12-10 12:49 708在今年举行的Facebook F8开发者大会上,51CTO带您 ... -
为程序员量身定制的12个目标
2012-11-18 15:44 646http://justjavac.iteye.com/b ... -
Java资源同步的方式
2012-10-25 08:30 776前面我们知道syncnized方法可以对一段代码进行资源 ... -
FusionCharts:Div层被Flash遮住
2012-10-20 17:34 643http://www.zihou.me/html/201 ... -
FusionCharts V3图表导出图片和PDF属性说明
2012-10-20 17:29 790http://www.cnblogs.com/ATree/ar ... -
FusionCharts的中文乱码问题
2012-10-20 17:20 673原文地址:http://wangyaobeijing.b ... -
12 个有效的提高编程技能的方法
2012-10-14 19:17 529来源于:http://www.oschina.net/news ... -
JAVA MVC框架性能比较
2012-09-09 17:28 742来源:http://www.blogjava.net/p ... -
低级别工具 —— 锁定和原子
2012-09-09 17:26 748Lock Java 语言内置了锁定工具 —— sync ... -
Synchronizer 类
2012-09-09 17:26 706Synchronizer 类 Synchroni ... -
CompletionService
2012-09-02 16:44 877CompletionService 将执行服务与类似 Q ...
相关推荐
以下是对标题和描述中提及的Java枚举七种常见用法的详细说明: 1. 常量定义: 在Java中,枚举可以用来组织相关常量,提升代码的可读性和可维护性。例如,我们可以定义一个`Color`枚举,包含`RED`, `GREEN`, `BLANK`...
下面是Java枚举的七种常见用法的详细说明: 1. 常量用法: 在Java中,枚举可以用于组织一组相关的常量。在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式不够灵活。枚举提供了一种...
下面我们将深入探讨Java枚举类型的常见用法。 首先,枚举类型在本质上等同于定义了一组静态常量。创建枚举类型的语法如下: ```java public enum Belle { para1, para2, para3, para4; } ``` 这会创建一个名为`...
以下将详细介绍7种常见的Java枚举用法: 1. **常量用法**: 在JDK 1.5之前,我们通常使用`public static final`关键字来定义常量。但自从引入枚举后,我们可以将相关联的常量组织到同一个枚举类型中,如`Color {...
### Java枚举详解 在Java编程语言中,枚举(`enum`)是一种特殊的类,用于定义一组固定的常量值。这些常量值通常代表了一组预定义的选项或者状态,比如颜色、方向等。使用枚举可以提高代码的可读性和可维护性,并且...
首先,我们需要理解枚举的常见用法。枚举类型定义如下: ```java public enum Color { RED("红色"), GREEN("绿色"), BLUE("蓝色"); private String desc; Color(String desc) { this.desc = desc; } ...
### 枚举类型在switch语句中的用法 在编程语言中,枚举(Enum)是一种数据类型,它由一组固定的常量组成,通常用于表示有限的预定义值集。枚举类型的使用可以让代码更加清晰易读,并且有助于减少错误的发生。在本篇...
下面我们将详细探讨Java enum的四种常见用法。 1. 定义常量: 在Java 1.5之前,我们通常使用`public static final`关键字来定义常量,但这种方式存在一些局限。枚举提供了一种将相关常量分组的方式,例如定义颜色:...
枚举是Java 1.5引入的一种新类型,它允许开发者定义一组相关的值,这些值是该枚举类型的实例。在Java中,枚举类是一种特殊的类,它们默认继承自`java.lang.Enum`类,且具有以下特点: 1. 枚举类的实例必须在枚举类中...
在Java编程语言中,枚举(`enum`)是一种强大的工具,它允许我们定义一组预定义的常量。在Spring Boot 2.x框架中,枚举的使用可以帮助我们更好地管理和组织代码,提供类型安全和可读性。本篇将深入探讨如何在Spring ...
Java调用Chrome浏览器内核是开发桌面应用时一个常见的需求,尤其在需要嵌入Web页面或者与Web内容交互的场景下。CEF(Chromium Embedded Framework)是一个开源项目,它允许开发者将Google Chrome的Blink渲染引擎和V8...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在Java笔试题中,通常会涵盖以下几个核心领域: 1. **基础语法**:包括类、对象、接口、继承、多态、封装等概念。理解...
Java集合框架提供了一些常用的集合类,如ArrayList、LinkedList、Vector、HashMap、TreeMap等等,每种集合类都有其特点和用法。 十二、Java IO和NIO Java IO是Java的输入/输出流处理机制,NIO是Java的非阻塞IO机制...
8. **枚举**:Java枚举类型提供了强类型的安全性,可以用于替代传统的整数常量或字符串常量,使代码更加清晰和可维护。 9. **设计模式**:了解和应用单例、工厂、观察者、装饰器、适配器、策略等经典设计模式,有助...
4. 枚举和注解:C#的枚举和Java的枚举类在用法上有所不同,注解在Java中比C#更常见。转换时需考虑这些特性。 5. 面向接口编程:Java鼓励使用接口,而C#允许单继承和接口实现。转换时,需要根据设计模式和目标语言的...
8. **枚举与注解**:枚举是Java中的一种特殊类,常用于定义固定数量的值。注解是一种元数据,可以为编译器和JVM提供信息,例如用于自动生成代码、验证配置等。 9. **反射机制**:Java反射机制允许在运行时动态地...
在编程领域,`Compare`是一个常见的操作,用于比较两个对象或者值。这个操作在很多编程语言中都有体现,如C#、VB.NET、Java、JavaScript等。本文将深入探讨`Compare`的用法,以及在不同语言中的实现和应用。 在C#中...
11. **枚举与注解**:介绍Java中的枚举类型及其用法,以及注解的定义和应用,它们在现代Java开发中有着广泛的应用。 12. **Java 8及更高版本的新特性**:涵盖Lambda表达式、函数式编程、Stream API、日期时间API等...
以下是一些常见的Java应用和输入输出相关的知识点: 1. **StringBuilder 和 StringBuffer**: - 当需要拼接多个字符串时,优先选择`StringBuilder`,而不是使用`+`操作符或者多次调用`String`的`concat()`方法。这...