`
ColdHand
  • 浏览: 7138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

枚举的独特使用方法

 
阅读更多

   例如,定义表示一周内每一天的常量(简单起见,只列出前三天),这是枚举最常用的方式。

 

 

 public enum Week{

   MONDAY,

   TUSEDAY,

   WEDNESDAY

 }

 

   假设要为一周内的每一天定义一个类,其中包含两个方法:getDayOfWeek和getName,分别返回这一天是这周的第

 

几天和这一天的名字(如"星期一”、“星期二”)。按一般的做法,需要定义一个抽象类或接口,以及7个子类(分别对应一

 

周内的每一天),很可能还需要一个包含这7个类的对象引用的类。例如:

 

 

 public abstract class WeekDay{

    public abstract int getDayOfWeek();

    public abstract String getName();

  }

  public class MonDay{

    public int getDayOfWeek(){
       return 1;

  }

   public String getName(){
      return "星期一“;

   }

 }

  public class Week{

    public final static WeekDay MON = new MonDay();

}

 

    这样会增加很多的类,此时使用枚举是一个不错的解决办法。

 

 

public enum Week{

   MonDay{

     public int getDayOfWeek(){
        return 1;
     }

     public String getName(){
        return "星期一“;
    }

   TuseDay{

     public int getDayOfWeek(){
        return 2;

    }

   public String getName(){
      return "星期二“;

  }

   public abstract int getDayOfWeek();

   public abstract String getName();

 }
 

    这样一个枚举就搞定了。 

 

    我觉得这种方法很适用于单实例的具有常量特性的简单对象。

分享到:
评论
1 楼 futurep_p 2010-01-26  
<p>第一次见到枚举这么写,有点画蛇添足的感觉</p>
<p> </p>
<pre name="code" class="java">public enum Week{  
   MONDAY(1, "星期一"),
   SUNDAY(7, "星期日");

   private final int dayOfWeek;
   private final String name;

  Week(int dayOfWeek, String name){
    this.dayOfWeek = dayOfWeek;
    this.name = name;
  }

  public int getDayOfWeek(){
    return this.dayOfWeek; 
  }

  public String getName(){
    return this.name;
  }
}</pre>
<p> 这才是比较通用的做法</p>

相关推荐

    java枚举实例代码

    虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...

    枚举和简单反射

    在Java编程语言中,枚举(Enum)和反射(Reflection)是两个非常重要的特性,它们在实际开发中有着广泛的应用。...两者在实际编程中都有其独特的作用,正确理解和使用它们,能帮助我们编写出更加高效、健壮的代码。

    易语言遍历方法枚举窗口句柄

    标题中的“易语言遍历方法枚举窗口句柄”是一个关于Windows编程的知识点,主要涉及易语言(EasyLanguage)这个编程环境以及如何在其中遍历并枚举窗口句柄。易语言是中国的一种特色编程语言,它以简洁明了的汉语词汇...

    C# 颜色枚举对照表

    5. **EnumColors.cs**:这个文件可能是一个源代码文件,包含了使用 C# 编写的与颜色枚举相关的类或方法。它可能包括了枚举颜色并展示它们的示例代码。 6. **EnumColors.exe**:这是一个可执行文件,可能是编译后的...

    枚举enum的一些案例

    枚举类型的声明使用 enum 关键字,即一种由一组称为枚举数列表的命名常量组成的独特类型。每种枚举类型都有基础类型,该类型可以是除 char 以外的任何整型。枚举元素的默认基础类型为 int。通常枚举用来定义单选的...

    白狼偏移枚举小工具V1.0.6

    这款工具以其独特的功能和易用性在市场上脱颖而出,为用户提供了一种自动化处理内存指针关系的方法。 在软件开发和调试过程中,理解程序内存结构是至关重要的。内存遍历是这个过程中的一个关键步骤,它涉及到查找和...

    C#中如何为枚举类型添加描述方法【小技巧】

    在我们的日常开发中,我们会经常使用枚举类型。枚举类型(enum type)是具有一组命名常量的独特的值类型。在以下示例中: enum Color { Red, Green, Blue } 声明一个名为 Color 的枚举类型,该类型具有三个成员...

    C#高性能枚举去除泛型中的重复数据

    枚举(Enum)和泛型(Generic)是C#语言中两个非常重要的特性,它们各自有其独特的作用,但在某些场景下可以结合使用以提高代码的复用性和性能。本文将深入探讨如何利用C#的枚举和泛型技术来实现高性能的数据去重。 ...

    Java期末复习——枚举与反射机制

    Java编程语言中,枚举和反射机制是两个重要的特性,它们在不同的场景下有着独特的用途。下面我们将详细探讨这两个主题。 一、枚举 枚举(Enum)在Java中用于定义一组固定数量的值,这些值可以作为常量使用。枚举...

    易语言按窗口标题或类名枚举窗口源码

    在IT领域,编程是解决问题的关键工具,而易语言作为一款中国特色的编程语言,以其独特的语法和易用性受到许多初学者和开发者的喜爱。本文将深入解析标题为“易语言按窗口标题或类名枚举窗口源码”的知识点,帮助读者...

    枚举系统磁盘驱动器的资源

    在.NET框架中,`System.IO.DriveInfo`类提供了枚举和获取驱动器信息的方法。对于其他操作系统,如Linux,可以使用`/sys/class/block`目录下的信息或`udev`数据库来获取驱动器信息。 4. **驱动器属性**:通过编程...

    实例177 - 增加枚举元素的信息

    在C#中,虽然枚举没有内置的方法支持,但我们可以使用扩展方法来增加功能。例如,我们可以创建一个静态类,包含一个扩展方法,用来计算两个枚举值之间的天数差: ```csharp public static class EnumExtensions { ...

    vb枚举指定窗口下控件类名及句柄

    然后,可以使用`EnumChildWindows` API函数枚举指定窗口下的所有子窗口,也就是控件。`EnumChildWindows`需要一个回调函数来处理每个子窗口的句柄。 下面是一个简单的示例,展示如何使用VB来枚举桌面窗口并获取其...

    枚举窗口,内存对齐,自己实现atoi

    在IT行业中,枚举窗口(EnumWindows)、内存对齐(Memory ...这三者都是程序员必备的基础技能,无论是在日常开发还是在解决特定问题时,都有其独特的作用。掌握这些知识点,能够提升我们的编程能力和解决问题的能力。

    枚举窗口410

    枚举窗口通常涉及到Windows API(应用程序接口),这是开发Windows应用时所使用的函数库。`EnumWindows`函数是这个API的一部分,它接受一个回调函数(通常称为枚举过程或EnumProc)作为参数,该回调函数会在遍历每个...

    易语言文件枚举W 修复各种问题

    3. 编码问题:处理包含非ASCII字符的文件名时,确保使用了正确的编码方式,如使用文件枚举W。 4. 死循环:在递归遍历目录时,如果不小心形成了循环引用(如子目录包含父目录),会导致程序无法正常结束。因此,需要...

    易语言递归实现目录枚举所有子目录

    本文将深入探讨如何使用易语言实现递归目录枚举,以便遍历指定目录及其所有子目录中的文件。 目录枚举是程序设计中常见的需求,例如在文件管理、备份、搜索等方面都有应用。在易语言中,我们可以使用“文件”和...

    易语言枚举任务栏窗口标题.7z

    在这个"易语言枚举任务栏窗口标题.7z"压缩包中,包含的资源是关于如何使用易语言来枚举并获取任务栏中的窗口标题。下面我们将详细探讨这个主题。 首先,我们需要了解枚举的概念。在编程中,枚举(Enumeration)通常...

    易语言枚举U盘序列号源码

    在本例中,"易语言枚举U盘序列号源码"是指使用易语言编写的一段代码,这段代码的功能是获取连接到计算机上的USB闪存驱动器(通常称为U盘)的序列号。 序列号是每个硬件设备的独特标识符,对于U盘来说,这个序列号...

    第18讲共同体位运算与枚举类型.ppt

    共同体(Union)与枚举类型(Enum)是C语言中两种特殊的复合数据类型,它们各自在特定场景下有着独特的作用。 共同体(Union)是C语言中一种存储结构,它允许在一个存储位置上存储不同类型的数据。这与结构体...

Global site tag (gtag.js) - Google Analytics