大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java常量定義方法

Java常量定義方法

更新時(shí)間:2022-04-01 10:24:20 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1629次

圍繞Java常量這個(gè)話題似乎有很多困惑。有些人使用整數(shù)或字符串來(lái)定義常量,而另一些人則使用枚舉。

在本文中,我們將了解在 Java 中存儲(chǔ)常量的兩種最常見(jiàn)的策略: 整數(shù)和枚舉。

首先,當(dāng)您決定使用常量時(shí),您應(yīng)該非常確定常量不會(huì)隨著時(shí)間而改變,這樣您就可以避免重新編譯。

在本文中,我們將使用一個(gè)非常常見(jiàn)的常量候選者——工作日!

假設(shè)我們有一個(gè)類表示在線商店中的訂單,我們希望在其中跟蹤訂單發(fā)生在一周中的哪一天。

我們的類看起來(lái)像這樣:

公共 類 訂單{
    私人[數(shù)據(jù)類型] weekDay ;
    公共[數(shù)據(jù)類型] getWeekDay () {
        返回 工作日;
    }
    公共 無(wú)效 setWeekDay ([數(shù)據(jù)類型] weekDay ) {
        這個(gè)。星期天 = 星期天;
    }
}

請(qǐng)注意,該類暫時(shí)不會(huì)編譯 - [datatype] 只是我們將使用的常量類型的占位符。

用整數(shù)定義常量

在 Java 中定義常量的最常見(jiàn)方法之一是通過(guò)整數(shù),其中整數(shù)變量是靜態(tài)的。

公共 靜態(tài) int 星期一 =  0 ;
公共 靜態(tài) int 星期二 =  1 ;
公共 靜態(tài) int 星期三 =  2 ;
公共 靜態(tài) int 星期四 =  3 ;
公共 靜態(tài) int  FRIDAY  =  4 ;
公共 靜態(tài) int 星期六 =  5 ;
公共 靜態(tài) int  SUNDAY  =  6 ;

定義整數(shù)常量時(shí)要問(wèn)的第一個(gè)問(wèn)題是放置它們的位置。我們是否將它們直接放在課堂上?還是我們給他們自己的課? Order

由于日子非常普遍,而且不一定只與 type 的對(duì)象相關(guān) Order,我們將在它們自己的 class 中定義它們。 WeekDay

公共 課 工作日{(diào)
    私人 工作日(){}
???    公共 靜態(tài) int 星期一 =  0 ;
    公共 靜態(tài) int 星期二 =  1 ;
    公共 靜態(tài) int 星期三 =  2 ;
    公共 靜態(tài) int 星期四 =  3 ;
    公共 靜態(tài) int  FRIDAY  =  4 ;
    公共 靜態(tài) int 星期六 =  5 ;
    公共 靜態(tài) int  SUNDAY  =  6 ;
}

您可能注意到了私有構(gòu)造函數(shù)——這是為了避免客戶端實(shí)例化該類。該類僅包含與對(duì)象無(wú)關(guān)的靜態(tài)變量,因此無(wú)需實(shí)例化該類。

現(xiàn)在,每當(dāng)我們需要為訂單設(shè)置特定日期時(shí),我們都會(huì)這樣做:

訂單 order  =  new  Order ();
訂購(gòu)。setWeekDay ( WeekDay . MONDAY );

而當(dāng)我們想檢查訂單是否發(fā)生在星期五時(shí),我們可以簡(jiǎn)單地調(diào)用 write:

if(order.getWeekDay() == WeekDay.FRIDAY)

到目前為止,一切都很好。這樣的設(shè)計(jì)肯定不會(huì)有問(wèn)題吧?

好吧,讓我們假設(shè)您在一年后回到此代碼 - 您必須檢查訂單是否發(fā)生在星期一。

哦,當(dāng)然——你已經(jīng)完全忘記了 WeekDay 課程......

在這種情況下,你可以嘗試這樣的事情:

if(order.getWeekDay() == 1)

在那一刻,完全忘記了 WeekDay 類,這段代碼非常有意義。星期一是一周的第一天,所以工作日應(yīng)該是 1,對(duì)吧?

但是不,不是,因?yàn)殪o態(tài) int 變量 Monday在我們的 類中被定義為0WeekDay !

這是一個(gè)很好的例子,說(shuō)明了為什么您應(yīng)該考慮避免 使用整數(shù)常量。它們?nèi)菀壮鲥e(cuò)、令人困惑且難以調(diào)試。

用枚舉定義常量

在 Java 中定義常量的另一種方法是使用enums。

使用枚舉時(shí),我們的常量類將如下所示:

公共 枚舉 WeekDay {
    星期一,
    星期二,
    星期三,
    星期四,
    星期五,
    星期六,
    星期日
}

注意沒(méi)有私有構(gòu)造函數(shù)——程序員(你!)不需要強(qiáng)制類是不可實(shí)例化的,因?yàn)槟J(rèn)情況下枚舉是不可實(shí)例化的!

將 a 設(shè)置為順序的語(yǔ)法 WeekDay 與整數(shù)常量完全相同:

order.setWeekDay(WeekDay.MONDAY);

我們?nèi)绾翁幚碛唵问欠裨谛瞧谖逄幚硪矝](méi)有區(qū)別:

if(order.getWeekDay() == WeekDay.FRIDAY)

但是,主要區(qū)別在于這是您可以設(shè)置和比較 Order 類中 weekday 變量值的唯一方法。

兩者 order.setWeekDay(1); 和 if(order.getWeekDay() == 1) 都會(huì)使編譯器拋出一個(gè)錯(cuò)誤,因?yàn)槟阍噲D使用整數(shù)類型的變量,而它們應(yīng)該是! WeekDay

使用Java枚舉,這不再是問(wèn)題。如果您嘗試使用整數(shù)而不是 WeekDay 枚舉成員,編譯器將簡(jiǎn)單地拋出一個(gè)錯(cuò)誤,告訴您需要使用 WeekDay 枚舉。

換句話說(shuō),唯一能幫助您檢查訂單是否發(fā)生在星期五的是:

if(order.getWeekDay == WeekDay.FRIDAY)

沒(méi)有比這更清楚的了!

您不再需要記住常量類,并且如果有任何客戶使用您的代碼,他們不必懷疑星期一實(shí)際上是由 0 還是 1 表示的。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品玖玖| 奇米影视小说 | 国产精品国产三级国产无毒 | 韩国精品欧美一区二区三区 | 福利岛国深夜在线 | 九九视频在线免费观看 | 天天干夜夜做 | 日本成人不卡视频 | 亚洲成人免费视频在线 | 中文字幕三级在线不卡 | 久久中文字幕不卡一二区 | 狠狠2020 | 亚洲最大免费视频网 | 国产99视频精品免费视频免里 | 美女美女高清毛片视频 | 五月天亚洲婷婷 | 欧美高清视频www夜色资源网 | 亚洲区精品 | 婷婷国产偷v国产偷v亚洲 | 四虎影视久久久免费 | 国产精品高清久久久久久久 | 成人在线毛片 | 日本α级毛片视频免费观看 | 四虎精品永久免费 | 亚洲七七久久精品中文国产 | 欧美国产精品亚洲精品第一区 | 欧美啪啪小视频 | 毛片免费全部免费观看 | 免看一级a一片成人123 | 久久er热这里只有精品23 | 波多野结衣一区 | jizzjizz成熟丰满老妇 | 久久精品国产亚洲妲己影院 | 亚洲国产精品aa在线看 | 国产精品国产高清国产专区 | 欧美一区二区手机在线观看视频 | 免费一级毛片免费播放 | 四虎网站1515hh四虎 | 亚洲精品国产专区一区 | 小视频国产 | 五月天婷婷在线视频国产在线 |