Java 枚举类型

package com.se;

public enum Operation {

/**
* 枚举类对象(PLUS...) 相当于当前类的一个final 实例
*/
// PLUS,MINUS,TIMES,DIVIDE;
//
// Double apply(double x,double y){
// switch(this){
// case PLUS:return x+y;
// case MINUS:return x-y;
// case TIMES:return x*y;
// case DIVIDE:return x/y;
// default:return null;
// }
// }


PLUS("+"){
@Override
Double apply(Double x, Double y) {
// TODO Auto-generated method stub
return x+y;
}
},
MINUS("-"){
@Override
Double apply(Double x,Double y){
return x-y;
}
},
TIMES("*") {
@Override
Double apply(Double x, Double y) {
// TODO Auto-generated method stub
return x*y;
}
},
DIVIDE("/") {
@Override
Double apply(Double x, Double y) {
// TODO Auto-generated method stub
return x/y;
}
}
;

/**
* 把枚举类和行为联系在一起
*/
private String symbol; //不需要申明为final 
Operation(){} //默认构造器
Operation(String symbol){
this.symbol=symbol;
}
abstract Double apply(Double x,Double y); //抽象方法


public static void main (String[] args){
/**
* 特定于常量方法的实现,抽象方法
*/
for(Operation oper:Operation.values()){
System.out.println(oper.apply(4.00, 2.0));
}
}

}

posted @   Qiurf  阅读(839)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
点击右上角即可分享
微信分享提示