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 { }
Enum枚举 简单的使用的更多相关文章
- MVC3不能正确识别JSON中的Enum枚举值
一.背景 在MVC3项目里,如果Action的参数中有Enum枚举作为对象属性的话,使用POST方法提交过来的JSON数据中的枚举值却无法正确被识别对应的枚举值. 二.Demo演示 为了说明问题,我使 ...
- Python中模拟enum枚举类型的5种方法分享
这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下 以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...
- Java中的enum枚举类
首先说说为什么要写这个enum枚举类吧,是群里有个新手问:怎样把enum类中的值遍历得到,其实自己用的也很少.自己也是确实不知道,于是我去网上搜了不少,总结了些,希望对大家有帮助:首先我说说怎样遍历枚 ...
- Swift Enum 枚举
前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...
- 集合 enum 枚举 简介 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Enum 枚举类
目录 Enum 枚举类 基础 定义与用途 基本方法 示例 进阶 实现原理 枚举与Class对象 自定义枚举类和构造方法及toString() Enum中使用抽象方法来实现枚举实例的多态性 Enum与接 ...
- Enum枚举的使用实现
业务中涉及到的状态字段或者简单的选择项的使用. 例如: 1.定义enum枚举类. package com.yjl.enums; import java.util.Objects; public enu ...
- Java实用类-Enum(枚举)
1. 历史 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代(例如,public static final String male ).JKD1.5之后使用 Java 枚举类型 e ...
- c# (ENUM)枚举组合类型的谷歌序列化Protobuf
c# (ENUM)枚举组合类型的谷歌序列化Protobuf,必须在序列化/反序列化时加上下面: RuntimeTypeModel.Default[typeof(Alarm)].EnumPassthru ...
随机推荐
- ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
相关知识: 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对 ...
- 【Qt】Qt Creator快捷键【转】
简介 Qt Creator中提供了各种快捷键来加快开发进程. 如果需要查看或自定义快捷键,选择工具->选项->环境->键盘.快捷键按类别列出,可以在过滤器(Filter)处输入命令名 ...
- PHP弱类型安全问题笔记
一.类型转换问题 intval(); var_dump(intval('1asdfasd')); //1 var_dump(intval('awqw12')); //0 var_dump(i ...
- AndroidSDK无法下载API包的解决方法
1:打开Android SDK Manager”,然后点击菜单栏中的“Tools”菜单选项,接下来只需选择“Options”选项即可打开设置窗体,在打开的选项中找到Others框,里面勾选第一个: F ...
- How to change comment
AX2009 // USR Changed on 2013-07-10 at 12:57:46 by 7519 - Begin // USR Changed on 2013-07-10 at 12:5 ...
- JS面向对象编程创建类的方式
js创建类的方式有几种,大致如下: 1,构造函数方式: function Car(parameters) { this.name = "objectboy"; } var cat1 ...
- hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程
http://acm.hdu.edu.cn/showproblem.php?pid=5755 题意:一个N*M的矩阵,改变一个格子,本身+2,四周+1.同时mod 3;问操作多少次,矩阵变为全0.输出 ...
- [Java][RCP] 引入第三方jar包时出错: XXXcannot be found XXX
为什么会这样? 下面的博客有介绍,不在累赘 http://dengmin.iteye.com/blog/260585 这些博客貌似忘掉了一点,或者是我本地的Eclipse新建的项目Version不够高 ...
- 不逃离WIndows,Asp.Net就只能写写进销存管理系统
那个丹麦人把C#语言弄的再好,但是如果程序放进Windows+IIS这个容器,就有问题了. 我在I5+8G内存的机子上测试Windows2008+IIs,直接ab 2000并发压默认的HTML主页,还 ...
- iOS常见问题(3)
一.发现不少人在给成员变量初始化的时候,容易进错一个方法去初始化. //注意这个方法只有在内存发生警告的时候才会调用. - (void)didReceiveMemoryWarning { [super ...