java枚举

枚举的出现主要是为了解决变量过度循环问题。
下面将通过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;
}
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值