晒酷学院qq群:979438600
junit中到处都会见到annotation及枚举,以及反射机制的应用,上一篇中我给大家介绍了Annotation结合反射的基本使用,下面简单给大家介绍一下枚举。
java语言中枚举属于构造类型,它用于声明一组已定义的对象,当一个变量有几种可能的取值时,可以将它定义为枚举类型
代码释义:例如有一个宠物店,但对这个宠物店有以下需求,店里的宠物只能有猴子,小狗,小猫,三种宠物,当然这样的需求对于传统的类也可以实现,无非就是在实例化某个宠物时,对宠物的名字做检查,如果不符合需求可以抛出异常等
相比枚举来说,枚举可以很简单的完成这样的需求
代码示例:
package Enumeration;
public class DemoEnum {
public static void main(String[] args) {
Pet dog = Pet.DOG; //用户在初始化宠物对象时,只能使用Pet枚举中封装好的宠物
// Pet cat = new Pet("jjj",14); 这里是非法操作
System.out.println(dog);
}
}
enum Pet {
DOG("dog", 15), CAT("cat", 12), MONKEY("monkey", 20); //此处实例化三个宠物对象
private String name;
private float price;
//这里的构造方法只能声明为private,缺省是private,不允许用户实例化宠物对象
Pet(String name, float price) {
this.setName(name);
this.setPrice(price);
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public float getPrice() { return price; }
public void setPrice(float price) { this.price = price; }
@Override
public String toString() { return name + ": " + this.price; }
}