`
cunzhangok
  • 浏览: 66207 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

Enum java

 
阅读更多
Enum是enumeration(列举)的简写形式
public enum Season { winter, spring, summer, fall }
一个enum是定义一组值的对象,它可以包括零个或多个值成员.它是属于enum类型的,一个enum对象中不可有两个或多个相同的属性或值.在次之前的java程序员一般是 用接口的方法实现列举的,如 :
public interface Season {
   static winter = 0;
   static spring = 1; //etc..

}
引入了enum的java的列举的编写方便了许多,只须定义一个enum型的对象.enum对象的值都回自动获得一个数字值,从0开始,依次递增.看一个比较简单的enum实现的例子:
(1)
EnumDemo.java
package net.javagarage.enums;
public class EnumDemo {
      private enum Seasons { winter, spring,   summer, fall }

    
      public static void main(String[] args) {

            for (Seasons s : Seasons.values()){

                  System.out.println(s);

            }

      }



}
运行上述代码你回得到 以下结果:

winter

spring

summer

fall

Enum的属性调用:

(2)

下面的代码展示了调用enum对象的方法(switch中的使用),这也是它通常的用法:

package net.javagarage.enums;

public class EnumSwitch {

      private enum Color { red, blue, green }

      public static void main(String[] args) {


            doIt(Color.red);

      }

      private static void doIt(Color c){

      switch (c) {

      case red:

            System.out.println("value is " + Color.red);

            break;

      case green:

            System.out.println("value is " + Color.green);

            break;

      case blue:

            System.out.println("value is : " + Color.blue);

            break;

      default :

            System.out.println("default");

      }

      }
}

为enums添加属性和方法

(3)
enums也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.
【添加方法、属性】
package net.javagarage.enums;

public class EnumWithMethods {

public enum Season {
      winter, spring, summer, fall;
      private final static String location = "Phoenix";
      public static Season getBest(){
            if (location.equals("Phoenix"))
                  return winter;
            else
                  return summer;
      }
      public static void main(String[] args) {
         System.out.println(Season.getBest());
      }

}

就是这么的简单.但是有一点是需要注意的,那就是enums的值列表必须紧跟在enum声明,不然编译时将会出错.

(4)
【Enums构造函数】

和类一样enums也可以有自己的构造函数,如下:

package net.javagarage.enums;



public class EnumConstructor {



      public static void main(String[] a) {



            //call our enum using the values method

            for (Temp t : Temp.values())

                  System.out.println(t + " is : " + t.getValue());

      }



      //make the enum

      public enum Temp {

            absoluteZero(-459), freezing(32),

            boiling(212), paperBurns(451);



      //constructor here

      Temp(int value) {

            this.value = value;

      }



      //regular field?but make it final,

      //since that is the point, to make constants

      private final int value;



      //regular get method

      public int getValue() {

      return value;

      }



      }

}
输出结果是:

absoluteZero is : -459

freezing is : 32

boiling is : 212

paperBurns is : 451

尽管enums有这么多的属性,但并不是用的越多越好,如果那样还不如直接用类来的直接.enums的优势在定义int最终变量仅当这些值有一定特殊含义时.但是如果你需要的是一个类,就定义一个类,而不是enum.

补充:默认情况下输出Enum元素的时候是以字符名称的,但是可以复写tostring方法,改变输出结果

定义枚举类型的变量在比较的时候注意:
    如 EnumT tt=EnumT.apple
    此时tt==EnumT.apple 是成立
分享到:
评论

相关推荐

    Java SE程序 Enum枚举类

    Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...

    Java Enum和String及int的相互转化示例

    Java Enum和String及int的相互转化示例 Java Enum和String及int的相互转化示例是Java编程语言中的一种重要技术,通过本文,我们将详细介绍Java Enum和String及int的相互转化示例,并提供详细的示例代码,帮助大家更...

    Java枚举类型Enum的用法

    Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...

    java enum 枚举 学习资料

    "Java Enum 枚举学习资料" Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举...

    Java Enum使用Demo源码

    在Java编程语言中,枚举(Enum)是一种特殊的类,用于定义固定的常量集合。它在许多场景下比常量接口或静态final变量更安全、更方便。本篇将通过"Java Enum使用Demo源码"深入探讨Java枚举的用法。 首先,枚举在Java...

    Java enum的用法详解

    Java enum 的用法详解 Java enum(枚举)是一种特殊的数据类型,用于定义一组固定的常量。从 JDK 1.5 开始,Java 引入了 enum 机制,解决了传统的常量定义方式的不足。 用法一:常量 在 JDK 1.5 之前,我们定义...

    java的Enum

    ### Java的Enum知识点详解 #### 一、枚举的基本概念 在Java中,`enum`(枚举)是一种特殊的类,用于定义一组常量值。它可以帮助开发者限制一个变量的可能值,使其只能从预定义的一组选项中选择。枚举提供了一种更...

    Java enum的用法详细介绍及实例代码

    在Java编程语言中,`enum`(枚举)是一种强大的类型,它允许开发者定义一组预定义的常量。枚举在许多方面都优于传统的静态常量,因为它提供了更多的功能和灵活性。以下是对Java `enum`的详细用法和实例代码的深入...

    java枚举类型enum的使用

    ### Java 枚举类型 enum 的使用详解 #### 一、枚举类型概述 在 Java 中,枚举(enum)是一种特殊的类,它被用来表示一组固定的常量值。枚举类型自 JDK 1.5 开始引入,为开发者提供了一种更加安全、简洁的方式来...

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

    在Java编程语言中,枚举(enum)是一种特殊的类,用于定义一组固定的常量。它在许多场景下比使用常量或int类型的硬编码值更安全、更具可读性。本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用...

    Java中的Enum的使用与分析

    ### Java中的Enum深入解析 #### 引言 在Java编程语言中,`Enum`是一种特殊的数据类型,用于处理一组固定的常量。它不仅提供了一种更安全、更灵活的方式来表示一组固定的选择,还包含了丰富的内置功能,使得枚举...

    java enum 枚举的spring boot2.x完美实现demo源码

    在Java编程语言中,枚举(`enum`)是一种强大的工具,它允许我们定义一组预定义的常量。在Spring Boot 2.x框架中,枚举的使用可以帮助我们更好地管理和组织代码,提供类型安全和可读性。本篇将深入探讨如何在Spring ...

    Java enum关键字不识别的快速解决办法

    Java enum关键字是自Java 5版本引入的一种类型,用于创建枚举类,它允许开发者定义一组固定的常量。然而,在某些情况下,开发人员可能会遇到IDE(如MyEclipse)不识别enum关键字的问题,这通常是由于IDE配置不当或...

    java中enum枚举的详细用法

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

    Demo4Enum.java

    Demo4Enum.java

    java下的enum介绍

    根据提供的文件信息,这里将详细解释Java中的枚举(enum)类型,并且深入探讨其用法、特性以及在实际编程中的应用。 ### Java中的枚举(enum) #### 1. 枚举概述 枚举(enum)是Java 1.5版本引入的一种新数据类型...

    Java ---- enum --- 枚举类案例

    Java ---- enum --- 枚举类案例

    java 中enum的使用方法详解

    Java中的枚举(enum)是自JDK 1.5版本引入的一种强大的类型,它用于定义固定的、不可变的值集合。枚举类型是`java.lang.Enum`抽象类的子类,提供了一种安全且类型化的常量表示方式。下面我们将深入探讨enum的使用...

Global site tag (gtag.js) - Google Analytics