java枚举类的属性、方法和构造方法应用实战

本文实例讲述了java枚举类的属性、方法和构造方法应用。分享给大家供大家参考,具体如下:

一 点睛

枚举类也是一种类,只是它是一种比较特殊的类,因此它一样可以使用属性和方法。

枚举类通常应该设计成不可变类,也就说它的属性值不应该允许改变,这样会更安全,而且代码更加简洁。为此,我们应该将枚举类的属性都使用private final修饰。

一旦为枚举类显式定义了带参数的构造器,则列出枚举值时也必须对应地传入参数。

二 简单枚举类实战

1 代码

Gender.java

public enum Gender
{
  MALE,FEMALE;
  // 定义一个public修饰的实例变量
  public String name;
}

GenderTest.java

public class GenderTest
{
  public static void main(String[] args)
  {
   // 通过Enum的valueOf()方法来获取指定枚举类的枚举值
   Gender g = Enum.valueOf(Gender.class , "FEMALE");
   // 直接为枚举值的name实例变量赋值
   g.name = "女";
   // 直接访问枚举值的name实例变量
   System.out.println(g + "代表:" + g.name);
  }
}

2 运行

FEMALE代表:女

三 better枚举类实战

1 代码

Gender.java

public enum Gender
{
  MALE,FEMALE;
  private String name;
  public void setName(String name)
  {
   switch (this)
   {
     case MALE:
      if (name.equals("男"))
      {
        this.name = name;
      }
      else
      {
        System.out.println("参数错误");
        return;
      }
      break;
     case FEMALE:
     if (name.equals("女"))
     {
      this.name = name;
     }
     else
     {
      System.out.println("参数错误");
      return;
     }
     break;
   }
  }
  public String getName()
  {
   return this.name;
  }
}

GenderTest.java

public class GenderTest
{
  public static void main(String[] args)
  {
   Gender g = Gender.valueOf("FEMALE");
   g.setName("女");
   System.out.println(g + "代表:" + g.getName());
   // 此时设置name值时将会提示参数错误。
   g.setName("男");
   System.out.println(g + "代表:" + g.getName());
  }
}

2 运行

FEMALE代表:女
参数错误
FEMALE代表:女

四 best枚举类实战

1 代码

Gender.java

public enum Gender
{
  // 此处的枚举值必须调用对应构造器来创建
  MALE("男"),FEMALE("女");
  private final String name;
  // 枚举类的构造器只能使用private修饰
  private Gender(String name)
  {
   this.name = name;
  }
  public String getName()
  {
   return this.name;
  }
}

GenderTest.java

public class GenderTest
{
  public static void main(String[] args)
  {
   Gender g = Gender.valueOf("FEMALE");
   Gender m = Gender.valueOf("MALE");
   System.out.println(g + "代表:" + g.getName());
   System.out.println(m + "代表:" + m.getName());
  }
}

2 运行

FEMALE代表:女
MALE代表:男

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java枚举类enum介绍

    枚举类enum是JDK1.5引入的,之前都是用public static final int enum_value来代替枚举类的.枚举类enum是一种特殊的类,它默认继承了类java.lang.Enum.和其它普通类一样,enum同样可以有成员变量.方法.构造器,也可以实现一个或多个接口,区别是: 1.如果有构造器,必须用private修饰. 2.枚举类不能派生子类. 3.枚举类所有的实例必须在第一行显示定义.系统会自动给这些实例加上public static final修饰,无须程序员显示定义

  • java编程枚举类型那些事!枚举类型定义和重写枚举的方法

    什么是枚举类型 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中. 而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 简单的枚举类型定义 假如你希望创建一个颜色库,你可以这样定义枚举类型 enum Color {red, green, yellow, black}; 然后你就可以使用它 Color T = Color.red; if (T

  • Java枚举类用法实例

    本文实例讲述了Java枚举类用法.分享给大家供大家参考.具体如下: package com.school.stereotype; /** * 活动枚举类型 * @author QiXuan.Chen */ public enum EventStatus { /** * 未发布. */ DRAFT("DRAFT", "未发布"), /** * 已发布. */ PUBLISHED("PUBLISHED", "已发布"); /**

  • 浅析对java枚举类型的认识

    而想弄明白枚举类型是什么,就要把他和类进行对比了.用ecplise创建一个类,你要使用这个类就得new一个对象出来对吧(当然了,别较真,说我用他的静态属性和方法):而当你用ecplise创建一个枚举类型时,在使用时是不需要再new的,它本身就创建好了几个对象在其内部,这也就是枚举和类的最大区别. 首先,先创建一个枚举,看一下它到底是什么东西. 我们给这个枚举对象加入两个对象(red和green),一个属性,一个构造方法,还有setget方法,这样一个简单的枚举类型就创建好了. 说说枚举的用处:一

  • java枚举类的构造函数实例详解

    java枚举类的构造函数实例详解 首先,给出一个例题如下: enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println("It is a account type"); } } class EnumOne { public static void main(String[]args) { System.out.println(AccountType.FIXED); } } T

  • 浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类型时,实质上您定义出来的类型继承自 java.lang.Enum 类,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被默认为 final,所以您无法改变它们,它们也是 static 成员,所以您可以透过类型名称直接使用它们,当然最重要的,它们都 是公开的(public). 举个

  • 基于java枚举类综合应用的说明

    如下面代码以交灯为示例: 复制代码 代码如下: public class Test { public static void main(String[] args) {         Trafficlight light = Trafficlight.RED; System.out.println(light.time);         System.out.println(light.nextLigth());         // ordinal()方法返回枚举声明的顺序        

  • Java5 枚举类详解及实例代码

    枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示. 1.常量的使用 在JDK1.5之前,我们定义常量都是:public static fianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. package com; public enum Color { RED, GREEN, BLANK, YELLOW } 使用 package com; public cla

  • Java编程枚举类实战代码分享

    本文句句走心,希望老铁们用心阅读并实战,一定会有收获的. 摘要:本文主要讨论生产环境中枚举类的使用.首先会通过对枚举类概念进行简单的介绍,引入我们讨论的主题:然后就直接进入实战部分,本文只会介绍在实战中用的比较多,也比较常用的情况,所以希望老铁可以用心体会并实践,最终化为己有:最后会大致在对枚举的 API 做了一个简单的介绍.其余没有介绍的内容,基本上在我们的生产环境中极少用到,如果有兴趣的可以自己在深入研究. 枚举 概念:枚举类型是 Java 5 中新增特性的一部分,它是一种特殊的数据类型,它

  • 扒一扒 Java 中的枚举类型

    前言 在 Java 中, 枚举, 也称为枚举类型, 其是一种特殊的数据类型, 它使得变量能够称为一组预定义的常量. 其目的是强制编译时类型安全. 枚举类更加直观,类型安全.使用常量会有以下几个缺陷: 1. 类型不安全.若一个方法中要求传入季节这个参数,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含的对象. 2. 没有命名空间.开发者要在命名的时候以SEASON_开头,这样另外一个开发者再看这段代码的时候,才知道这四个常量分别代

  • Java包含抽象方法的枚举类示例

    本文实例讲述了Java包含抽象方法的枚举类.分享给大家供大家参考,具体如下: 一 点睛 可以在枚举类里定义一个抽象方法,然后把这个抽象方法交给各枚举值去实现即可. 枚举类里定义抽象方法时无需显式使用abstract关键字将枚举类定义成抽象类,但因为枚举类需要显式创建枚举值,而不是作为父类,所以定义每个枚举值时必须为抽象方法提供实现,否则将出现编译错误. 二 实战 1 代码 public enum Operation { PLUS { public double eval(double x , d

随机推荐