日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java 枚举抽象方法_Java枚举抽象方法实战

發(fā)布時(shí)間:2025/7/14 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 枚举抽象方法_Java枚举抽象方法实战 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

枚舉類型是指由一組固定的常量組合成合法值的類型。

背景需求

本次需求中,已經(jīng)定了幾個(gè)固定的常量值,每個(gè)常量值都有相同的行為,但是具體的實(shí)現(xiàn)細(xì)節(jié)不同。建議使用枚舉抽象方法,好處:結(jié)構(gòu)清晰,便于擴(kuò)展。

枚舉常量方法

最常見(jiàn)的星期一到星期日的常量,假設(shè)每天都需要打印不同的消息。

定義一個(gè)抽象方法,用于描述打印行為。

星期常量Override抽象方法,實(shí)現(xiàn)具體的打印細(xì)節(jié)。

代碼演示如下:

public class EnumAbstract {

//對(duì)外提供方法

public void print(int key) {

keyOf(key).print();

}

public void print(WorkDays workDays){

workDays.print();

}

//獲取Key對(duì)應(yīng)的實(shí)例

private WorkDays keyOf(int key) {

switch (key) {

case 1:

return WorkDays.MONDAY;

case 2:

return WorkDays.TUESDAY;

case 3:

return WorkDays.WEDNESDAY;

case 4:

return WorkDays.THURSDAY;

case 5:

return WorkDays.FRIDAY;

case 6:

return WorkDays.SUNDAY;

case 7:

return WorkDays.SATURDAY;

default:

return null;

}

}

//最小訪問(wèn)權(quán)限設(shè)計(jì)原則,根據(jù)需要設(shè)置訪問(wèn)權(quán)限

private enum WorkDays {

MONDAY(1) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息1");

}

}, TUESDAY(2) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息2");

}

}, WEDNESDAY(3) {

@Override

protected void print() {

System.out.println(getKey()+": 消息3");

}

}, THURSDAY(4) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息4");

}

}, FRIDAY(5) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息5");

}

}, SATURDAY(6) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息6");

}

}, SUNDAY(7) {

@Override

protected void print() {

System.out.println(getKey()+" : 消息7");

}

};

private int key;

//私有化構(gòu)造方法

private WorkDays(int key) {

this.key = key;

}

public int getKey() {

return key;

}

public void setKey(int key) {

this.key = key;

}

//抽象方法

protected abstract void print();

}

}

代碼中的訪問(wèn)修飾符可根據(jù)需要修改。上述代碼僅用于演示。該代碼對(duì)外封裝細(xì)節(jié),僅提供了打印方法,使用此方法需要知道枚舉常量對(duì)應(yīng)的key值。如果知道枚舉值,可直接調(diào)用打印方法。workDays.print();

實(shí)戰(zhàn)

下面模擬實(shí)戰(zhàn)中的使用場(chǎng)景,遇到了一個(gè)難題,順便記錄一下。

項(xiàng)目中會(huì)遇到這樣的問(wèn)題,頁(yè)面上需要展示枚舉變量對(duì)應(yīng)的含義,這時(shí)有2中做法:

1. 頁(yè)面根據(jù)不同枚舉變量解析對(duì)應(yīng)的含義;

2. 枚舉變量在定義的時(shí)候,把key 定義為對(duì)應(yīng)的含義。

public enum WorkDaysName {

MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");

private String name;

WorkDaysName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

下面模擬枚舉變量在前后端交互過(guò)程中的做法。

//模擬保存枚舉到數(shù)據(jù)庫(kù)

public static void testSave() {

String key = EnumAbstract.WorkDaysName.SUNDAY.name();

//保存枚舉實(shí)例對(duì)應(yīng)的name到數(shù)據(jù)庫(kù)

System.out.println("保存枚舉實(shí)例對(duì)應(yīng)的name到數(shù)據(jù)庫(kù) " + key);

}

//模擬從數(shù)據(jù)庫(kù)獲取

public static void testSelect() {

//模擬從數(shù)據(jù)庫(kù)獲取

EnumAbstract.WorkDaysName workDays = EnumAbstract.WorkDaysName.valueOf("SUNDAY");

System.out.println("模擬從數(shù)據(jù)庫(kù)獲取對(duì)應(yīng)的枚舉實(shí)例 " + workDays);

System.out.println("模擬從數(shù)據(jù)庫(kù)獲取對(duì)應(yīng)的枚舉實(shí)例的類型 " + workDays.getClass());

System.out.println("頁(yè)面直接展示:" + workDays + " 的name:" + workDays.getName());

}

結(jié)果:

保存枚舉實(shí)例對(duì)應(yīng)的name到數(shù)據(jù)庫(kù): SUNDAY

模擬從數(shù)據(jù)庫(kù)獲取對(duì)應(yīng)的枚舉實(shí)例: SUNDAY

模擬從數(shù)據(jù)庫(kù)獲取對(duì)應(yīng)的枚舉實(shí)例的類型: class org.wuxinshui.boosters.designPatterns.enumAbstract.EnumAbstract$WorkDaysName

頁(yè)面直接展示:SUNDAY 的name:星期日

擴(kuò)展

總結(jié)

以上是生活随笔為你收集整理的java 枚举抽象方法_Java枚举抽象方法实战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中国久久久久 | 欧美综合色 | 在线看黄色片 | 国产av无码专区亚洲a∨毛片 | 亚洲综合在线一区二区 | 欧美乱论视频 | 国产理论片 | 精品少妇人妻av一区二区 | 性猛交ⅹxxx富婆video | 欧美成人黄色片 | 黄色片视频免费在线观看 | 快色在线观看 | 韩日中文字幕 | 91蝌蚪在线观看 | 午夜激情在线 | 精品三级国产 | 午夜精品福利电影 | 久久久久亚洲av成人网人人网站 | 欢乐谷在线观看免费播放高清 | 极品国产在线 | 夜夜天天操 | 日本四级电影 | 久久久久久国产精品视频 | 中国黄色网址 | 欧美精品1区2区3区 精品成人一区 | 五月婷激情 | 黄视频在线 | 91操人视频 | 精品一区二区三区免费观看 | 三级黄色图片 | 午夜福利电影 | 捆绑调教sm束缚网站 | 农村妇女毛片精品久久久 | 亚洲天堂2024 | 日韩一区免费视频 | 俺也去婷婷| 在线五月天| 在线观看国产成人 | 久久久久五月天 | 极品粉嫩小仙女高潮喷水久久 | 欧美 日本 国产 | 久久大香焦 | 性生交大全免费看 | 日韩精品视频在线观看网站 | 日本高清三区 | 日韩少妇激情 | 麻豆成人在线 | 成人av网址在线 | 日韩色影院 | 九九热在线播放 | 亚洲熟妇一区 | 欧美脚交| 麻豆成人精品国产免费 | 女人性做爰69片免费看 | 久色伊人 | 国产一级片免费视频 | 麻豆视频一区二区 | 成人性视频网 | kendra lust free xxx | 亚洲乱码国产乱码精品精 | 天天做日日干 | 免费中文字幕av | 第一福利av| www.youjizz.com中国 | 免费婷婷| 国产一区二区三区四区五区在线 | 黑料视频在线 | 欧美特一级片 | 97成人精品视频在线观看 | 永久免费在线视频 | 91成人高清 | 欧美激情久久久久久 | 亚洲精品中文无码AV在线播放 | 久草福利资源在线观看 | 视频免费观看在线 | 色小姐com| 精品在线视频免费 | 欧美插插视频 | 久久夜视频 | 优优色综合 | 中文字幕福利视频 | 亚洲精品欧美 | 国产亚洲欧美日韩高清 | 日韩美女中文字幕 | 在线视频观看你懂得 | 国产成人精品白浆久久69 | 欧美大尺度做爰啪啪床戏明星 | av九九九 | 成人天堂网 | 蜜臀久久99精品久久久久宅男 | 88久久精品无码一区二区毛片 | 欧美亚洲第一页 | 欧美 日韩 人妻 高清 中文 | 亚洲av熟女国产一区二区性色 | www.com黄色 | 成人在线观看a | 欧美日韩一区二区精品 | 成年人网站在线免费观看 | 性生交大片免费看视频 |