• 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 {
    
    }
  • 相关阅读:
    Ubuntu 14.04的SWAP 为0
    堆和栈的区别(转过无数次的文章)
    加法乘法判断溢出(转)
    大端格式、小端格式(转)
    Linux 目录操作和4中文件拷贝效率测试
    Linux使用标准IO的调用函数,分3种形式实现
    支持 onload 事件的元素
    $().each() 和 $.each()
    npm install --save 与 npm install --save-dev 的区别
    <!DOCTYPE html>作用
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/4201455.html
Copyright © 2020-2023  润新知