`
李勋辉
  • 浏览: 14156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 新特性 枚举

阅读更多

JDK  新特性之枚举(enum):

枚举就是要某个类型的变量的取值只能是几个固定值中的某一个,否则,编译器就会报错,枚举可以让编译器在编译时就可以控制程序中填写的非法值,普通变量的方式无法实现这一目标;

 

枚举的实现:

 

 

package learn;
/**
 * 枚举
 * @author hui 
 */
public class EnumTest {
public static void main(String[] args) {
	WeekDay weekDay=WeekDay.SUN;//自己定义的类型WeekDay
	System.out.println(weekDay.nextDay().toString());
			
}

}
在上面的类中,自己定义了一个类型WeekDay,建立一个自己的枚举类WeekDay_1;
package learn;
public class WeekDay_1 {
 /* 这个类必须要有一个私有的构造 */
private WeekDay_1(){};
public static final WeekDay_1 SUN = new WeekDay_1() ;//星期天
public static final WeekDay_1 MON = new WeekDay_1() ;//星期一
public static final WeekDay_1 TUS = new WeekDay_1() ;//星期二
public static final WeekDay_1 WEN = new WeekDay_1() ;//星期三
public static final WeekDay_1 THUR = new WeekDay_1() ;//星期四
public static final WeekDay_1 FRI = new WeekDay_1() ;//星期五
public static final WeekDay_1 SAT = new WeekDay_1() ;//星期六
/*
 * 他有一个方法,返回下一天
 * */
public WeekDay_1  nextDay(){
  if (this==SUN) { return MON; } else
   if(this==MON){ return TUS; }else if(this==TUS){ return WEN; }else
   if(this==WEN){ return THUR; }else if(this==THUR){ return FRI; }else
   if(this==FRI){ return SAT; }else { return SUN; }
}
/**
 * 重写toString()方法
 */
public String toString(){
 if (this == SUN) {
  return "Sunday";
 } else if (this == MON) {
  return "Monday";
 } else if (this == TUS) {
  return "Tuesday";
 } else if (this == WEN) {
  return "Wednesday";
 } else if (this == THUR) {
  return "Thursday";
 } else if (this == FRI) {
  return "Friday";
 } else {
  return "Saturday";
 }
}
}
上面的方法,如果因为if..else..太过繁琐,可以写成:
package learn;
public abstract class WeekDay {
 private WeekDay() {
 }
//使用内部类的方式来实现nextDay
 public static final WeekDay SUN = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return MON;
  }
 };
 public static final WeekDay MON = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return TUS;
  }
 };
 public static final WeekDay TUS = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return WEN;
  }
 };
 public static final WeekDay WEN = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return THUR;
  }
 };
 public static final WeekDay THUR = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return FRI;
  }
 };
 public static final WeekDay FRI = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return SAT;
  }
 };
 public static final WeekDay SAT = new WeekDay() {
  @Override
  public WeekDay nextDay() {
   return SUN;
  }
 };
 /*
  * public WeekDay nextDay(){ if (this==SUN) { return MON; } else
  * if(this==MON){ return TUS; }else if(this==TUS){ return WEN; }else
  * if(this==WEN){ return THUR; }else if(this==THUR){ return FRI; }else
  * if(this==FRI){ return SAT; }else { return SUN; } }
  */
 public abstract WeekDay nextDay();
 public String toString() {
  if (this == SUN) {
   return "Sunday";
  } else if (this == MON) {
   return "Monday";
  } else if (this == TUS) {
   return "Tuesday";
  } else if (this == WEN) {
   return "Wednesday";
  } else if (this == THUR) {
   return "Thursday";
  } else if (this == FRI) {
   return "Friday";
  } else {
   return "Saturday";
  }
 }
}

 使用JDK自带的枚举:

package learn;
/**
 * 枚举
 * @author hui
 *
 */
public class EnumTest {
public static void main(String[] args) {
 WeekDay weekDay=WeekDay.SUN;
 System.out.println(weekDay.nextDay().toString());
 
 WeekDay_2  weekDay2=WeekDay_2.MON;
 System.out.println(weekDay2.name());//返回当前对象的名字
 System.out.println(weekDay2.toString());//返回当前对象的toString
 System.out.println(weekDay2.ordinal());//返回当前对象的排序
 
}
/**
 * 枚举
 * @author hui
 *
 */
 public enum WeekDay_2{
  SUN,MON,TUS,WEN,THUR,FRI,SAT;//各个值之间用逗号隔开
 }
}

分享到:
评论

相关推荐

    java枚举实例代码

    在本实例代码中,我们将探讨枚举的基本用法和特性。 首先,枚举的定义方式如下: ```java public enum Color { RED, GREEN, BLUE } ``` 在这个例子中,`Color` 是一个枚举类型,`RED`, `GREEN`, `BLUE` 是该枚举...

    说说Java中的枚举 转 可以了,够了 包括EnumSet(Map)

    枚举类型在Java中被引入,主要用于解决常量集合并提供一种强类型的安全性,防止了无意间创建新的实例或修改枚举常量。这篇博客将深入探讨Java枚举的特性和使用方法,包括`EnumSet`和`EnumMap`这两个与枚举相关的数据...

    深入理解 Java 枚举(枚举的方法+枚举的特性+枚举可以实现接口+组织枚举+策略枚举+枚举工具类等)

    枚举的特性: 1. 枚举的本质是 java.lang.Enum 的子类。 2. 枚举是一种特殊的类,因为被修饰为 final,所以不能继承其他类。 3. 枚举值本质上是静态常量,定义的枚举值会被默认修饰为 public static final。 4. ...

    Java高新技术_java5的枚举的基本应用

    Java高新技术——Java 5的枚举(Enum)基本应用...通过使用枚举,开发者可以更好地管理常量,防止类型错误,并利用`switch`语句等特性来编写更清晰的代码。在实际开发中,熟练掌握枚举的应用是提高代码质量的关键之一。

    java1.5新特性_枚举

    java1.5新特性 枚举 问我文字大于20个字没问题吧?我曰:没问题,然后我凑了20个字~

    Java源码查看枚举类型定义.rar

    本资源"Java源码查看枚举类型定义.rar"包含了关于Java枚举类型的详细解释和实例,旨在帮助开发者深入理解这一特性。 首先,枚举类型在Java中通过关键字`enum`声明。例如: ```java public enum Color { RED, ...

    java中enum枚举的详细用法

    Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...

    高阶Java-Java枚举类型 enum 应用详解

    本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...

    Java手动方式创建枚举类示例

    Java手动方式创建枚举类示例 Java手动方式创建枚举类是一种常见的编程方法,在Java中可以使用枚举类型来定义一组具有相同特征的常量。通过手动方式创建枚举类,可以更好地控制枚举类型的行为和特性。在本文中,我们...

    Java枚举类型Enum的用法

    总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...

    java enum 枚举 学习资料

    Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举语法 在 Java 中,枚举类型是用 enum 关键字来定义的。枚举元素列表必须写在枚举类的最前面,每个元素之间用逗号隔开,...

    java枚举类型优秀源代码

    Java 7 引入了一些新特性,如带资源的try语句、多捕获等,增强了语言的功能性和易用性。 #### Java 7 新特性 - **带资源的try语句**:简化了资源管理,自动关闭try块内的资源。 - **多捕获**:在一个catch块中捕获...

    在Java中使用枚举

    以下是Java中枚举类型的一些关键特性和使用方式: 1. **类型安全**: - Java枚举确保了类型安全,因为枚举值只能是预先定义的实例。尝试将非枚举类型的值赋给枚举变量会导致编译错误。例如: ```java public ...

    JAVA枚举JAVA枚举.doc

    枚举类型(enum)是 Java SE 5.0 引入的新特性,用于替代传统的单例类或者常量类来定义一组固定数量的值。相较于简单的常量定义或类的静态常量实例,枚举具有以下优势: 1. **类型安全**:枚举类型的实例只能是预定...

    java新特性简介.ppt

    Java语言的不断发展带来了许多新特性,使得编程更加高效和安全。以下是这些特性的详细说明: 1. **自动装箱、拆箱**: 自动装箱是指将基本数据类型自动转换为对应的包装类对象,而拆箱则是将包装类对象转换回基本...

    MLDn学习笔记 —— JDK新特性(枚举)

    在Java编程语言中,JDK的新特性之一是枚举(Enum)。枚举是一种特殊的类,它提供了一种安全的方式来表示一组固定数量的常量。在本文中,我们将深入探讨枚举类型及其在JDK中的应用。 一、枚举的定义与使用 1. 基本...

    java枚举ppt和详细代码

    Java枚举是面向对象编程中的一个重要特性,它用于定义固定的常量集合,这些常量通常代表某种特定的数据类型。在Java中,枚举提供了一种更安全、更规范的方式来处理常量,相比于传统的final static变量,枚举具有更多...

    java枚举类型说明

    本文将深入探讨Java枚举类型的特性和用法,并通过具体实例说明其优势所在。枚举类型在Java中的引入标志着一种更为类型安全且灵活的编程方式。 #### 二、Java枚举的基本概念 Java中的枚举是一种特殊的类,用于定义...

    JAVA中的枚举类型2:高级特性.doc

    ### JAVA中的枚举类型2:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...

    Java中的枚举类型Enum示例源代码

    在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`Enum`的基本概念、用法以及一些高级特性。 首先,枚举类型`Enum`的定义方式如下: ```java ...

Global site tag (gtag.js) - Google Analytics