zoukankan      html  css  js  c++  java
  • Enum枚举 简单的使用

    在枚举中使用抽象方法

    /**
     * 为枚举类定义一个抽象方法,<br/>
     * 这个抽象方法由不同的枚举值提供不同的实现
     * 
     * @author wangzhu
     * @date 2014-9-15下午5:35:04
     * 
     */
    public enum EnumOption {
    
        PLUS {
            @Override
            public double eval(double x, double y) {
                return x + y;
            }
        },
        MINUS {
            @Override
            public double eval(double x, double y) {
                return x - y;
            }
        },
        TIMES {
            @Override
            public double eval(double x, double y) {
                return x * y;
            }
        },
        DIVIDE {
            @Override
            public double eval(double x, double y) {
                return x / y;
            }
        };
        public abstract double eval(double x, double y);
    }

    在枚举中实现接口

    public interface GenderDesc {
    
        void info();
    }
    
    
    /**
     * 实现接口的枚举类
     * 
     * @author wangzhu
     * @date 2014-9-15下午5:34:44
     * 
     */
    public enum EnumGender3 implements GenderDesc {
    
        MALE("男") {
    
            @Override
            public void info() {
                System.out.println("男子标记");
            }
        },
        FEMALE("女") {
    
            @Override
            public void info() {
                System.out.println("女子标记");
            }
        };
    
        private final String name;
    
        private EnumGender3(String name) {
            this.name = name;
        }
    
        public String getName() {
            return this.name;
        }
    }

    备注:

    // 编译通过,运行异常,因为在switch的时候真正使用的是enumGender3.ordinal()而不是enumGender3
            EnumGender3 enumGender3 = null;
            switch (enumGender3) {
            case MALE:
                System.out.println("EnumGender1 男");
                break;
            case FEMALE:
                System.out.println("EnumGender1 女");
                break;
            default:
                System.out.println("EnumGender1 其他");
                break;
            }
    package com.wangzhu.enumutil;
    
    /**
     * 应用枚举实现的工厂方法
     * 
     * @author wangzhu
     * @date 2015-1-4下午4:36:07
     * 
     */
    public enum EnumFactory {
        Cat {
            @Override
            public Animal create() {
                return new Cat();
            }
        },
        Dog {
            @Override
            public Animal create() {
                return new Dog();
            }
        };
    
        public abstract Animal create();
    
    }
    
    class Animal {
    
    }
    
    class Cat extends Animal {
    
    }
    
    class Dog extends Animal {
    
    }
  • 相关阅读:
    NumberFormat注解 DateTimeFormat
    SpringMVC自定义视图
    SpringMVC访问静态资源
    Jmeter查看结果树乱码的情况解决
    JMETER设置默认启动为中文的方法
    python——for循环与while循环的区别
    python学习笔记——字符串也可加入到for循环中
    python学习笔记——列表与字典的区别
    python学习笔记——删除列表元素的三种方法
    python学习笔记——input函数的使用规则
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/4201455.html
Copyright © 2011-2022 走看看