java枚举
程序员文章站
2022-06-07 16:30:28
...
枚举的出现主要是为了解决变量过度循环问题。
下面将通过2个枚举类AnimalOne,AnimalTwo来详细说明其用法:
下面代码主要是3个类,其实AnimalOne和AnimalTwo为枚举类,AnimalEnumTest为测试类,演示了日常工作所出现的情况。
下面将通过2个枚举类AnimalOne,AnimalTwo来详细说明其用法:
下面代码主要是3个类,其实AnimalOne和AnimalTwo为枚举类,AnimalEnumTest为测试类,演示了日常工作所出现的情况。
/* * 普通的枚举类只是用来存储变量, * 由于枚举也是类,所以聚类类的相关特性, * 需要注意的是枚举类的构造方法为private, * 在添加非变量时候,最后一个变量后面需要放分号且变量在类的最上面。 */ public enum AnimalOne { cat("jiafei",1), dog("toni",2), mouse("miki",3); // 成员变量 private String name; private int index; //构造函数只能是private private AnimalOne(String name ,int index){ this.name=name; this.index=index; } /* * 根据index获取name,由于构造函数是private的,所以无法通过引用访问, * 可以适当的 设置成static来直接访问,否则只能通过传递 */ public static String getAnimalNameByIndex(int index){ //遍历枚举 for(AnimalOne a:AnimalOne.values()){ if(a.getIndex()==index){ return a.getName(); } } return null; } //get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } @Override public String toString() { return index+":"+name; }
/* * 实现带有抽象方法的枚举 * 由于类型是anum所以必须要实现抽象方法 */ public enum AnimalTwo{ cat { @Override public String getColor() { return "red"; } },dog { @Override public String getColor() { return "green"; } },mouse { @Override public String getColor() { return "yellow"; } }; public abstract String getColor(); }
/* * Animal test */ public class AnimalEnumTest { public static void main(String[] args) { AnimalEnumTest t=new AnimalEnumTest(); t.checkAnimalOne(AnimalOne.dog); //测试Animal内部方法 System.out.println("--Animal one--总共:"+AnimalOne.values().length+"个"); System.out.println("--Animal one--"+AnimalOne.getAnimalNameByIndex(2)); System.out.println("--Animal two--"+AnimalTwo.cat.getColor()); } //最常用的方式 public void checkAnimalOne(AnimalOne a){ switch(a){ case cat: System.out.println("cat~~miaomiao~~"); break; case dog: System.out.println("dog~~wangwang~~"); break; case mouse: System.out.println("mouse~~jiji~~"); break; } } }
上一篇: PHP中的字符串函数