学习啦>知识大全>知识百科>公共基础知识>

java枚举和常量定义的区别(2)

时间: 谢君787 分享

  用法四:覆盖枚举的方法

  下面给出一个toString()方法覆盖的例子。

  Java代码

学习啦在线学习网   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不支持多继承,所以枚举对象不能再继承其他类。

  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);

  }

  }

学习啦在线学习网   用法六:使用接口组织枚举

  Java代码

  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文档。

  java枚举和常量定义的区别

  创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。

学习啦在线学习网   package com.hmw.test;

  /**

  * 枚举测试类

  * @author <a href=""></a>

  */

学习啦在线学习网   public enum EnumTest {

学习啦在线学习网   MON, TUE, WED, THU, FRI, SAT, SUN;

  }

  public为权限修饰符,这一点很明确,static为静态、final为终态,二者都属于同一类型修饰符,可以组合使用而不需区分先后,所以没有区别
看过“java枚举和常量定义的区别”的人还看了:

1.Java中变量和常量之间的区别

2.c语言基础知识总结

3.javaee面试题

4.2016java web面试题

1808239