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 {
    
    }
  • 相关阅读:
    PC端网站微信扫码登录
    H5微信授权登录
    Taro -- Swiper的图片由小变大3d轮播效果
    vue,一路走来(17)--vue使用scss,并且全局引入公共scss样式
    vscode 黑屏及类名报错解决方案
    js的cookie写入存储与读取
    常用正则表达式
    JS获取当前时间戳的方法
    URL的截取问题
    cookie的基本用法案例
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/4201455.html
Copyright © 2011-2022 走看看