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));
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单