首页 > 其他 > 详细

枚举类型

时间:2021-03-11 17:28:08      阅读:28      评论:0      收藏:0      [点我收藏+]

1.枚举类型编写类

package EnumTest;

public enum  FoodSelect {
    DESERT(1,"甜点"), DRINK(2,"饮料"), NOODLES(3,"面条");
    private int code;
    private String name;
    private FoodSelect(int code,String name){
        this.code = code;
        this.name = name;
    }
    public int getCode(){
        return code;
    }
    public String getName(){
        return name;
    }
    public void setCode(int code){
        this.code = code;
    }
    public void setName(String name){
        this.name = name;
    }
    public String toString(){
        return this.getName() + "--" + this.getCode();
    }
}

直接在类名那里标记这是个enum,然后可以写上相关的种类

并且在下面可以定义方法,定义常量等

并要写上构造器

在枚举的几种类型旁边需要用小括号标注下面会定义的常量的标号,如这里是code和name

主方法中:

package EnumTest;

public class Test {
    public static void main(String[] args) {
        System.out.println(FoodSelect.DESERT.getCode());
        System.out.println(FoodSelect.DRINK.getName());
    }
}

结果为:

1
饮料

 

2.枚举还可以实现接口

例如:

package enumTest;

public interface DayInterface {

    public String getDay();
}
package enumTest;

public enum MyDay implements DayInterface{
    
    MONDAY(1,"星期一"),THUSDAY(2,"星期二");//这个后面必须有分号
    
    private int code;
    private String name;
    private MyDay(int code,String name) {
        this.code = code;
        this.name = name();
    }
    
    public int getCode() {
        return code;
    }
    public String getName() {
        return name;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return this.getName()+"---"+this.getCode();
    }

    @Override
    public String getDay() {
        return this.getName();
    }
}

测试:

package enumTest;

public class Test {
    public static void main(String[] args) {
        System.out.println(MyDay.THUSDAY.getDay());
    }
}

结果:

THUSDAY

 

3.还可以使用接口组织枚举

package enumTest;

public interface Food {  
    enum Coffee implements Food{  
        BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
    }  
    enum Dessert implements Food{  
        FRUIT, CAKE, GELATO  
    }  
}

测试类:

package enumTest;

import enumTest.Food.Coffee;
import enumTest.Food.Dessert;

public class Test {
        
    public  static void main(String[] args) {  
        for (Dessert dessertEnum : Food.Dessert.values()) {  
            System.out.print(dessertEnum + "  ");  
        }  
        System.out.println();  
        //我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。  
        for (Coffee coffee : Food.Coffee.values()) {  
            System.out.print(coffee + "  ");  
        }  
        System.out.println();  
        //搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。  
        //还有就是个“多态”的功能吧,  
        Food food = Food.Dessert.CAKE;  
        System.out.println(food);  
        food = Coffee.BLACK_COFFEE;  
        System.out.println(food);  
    } 
}

结果:

FRUIT CAKE GELATO 
BLACK_COFFEE DECAF_COFFEE LATTE CAPPUCCINO 
CAKE
BLACK_COFFEE

 

枚举类型

原文:https://www.cnblogs.com/DiamondDavid/p/14518639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!