国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Java中定義常量?jī)煞N常見策略

汽車玩家 ? 來(lái)源:黑馬程序員 ? 作者:黑馬程序員 ? 2020-05-05 20:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)于Java中常量的話題似乎有很多困惑。有些人使用整數(shù)或字符串來(lái)定義常量,而另一些人則使用枚舉。

我還遇到了在它們自己的接口中定義的常量——在接口中,使用常量的類必須實(shí)現(xiàn)接口。這種策略通常被稱為接口常量設(shè)計(jì)模式。

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

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

在這篇文章中,我們將使用一個(gè)非常常見的常量候選——工作日!

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

看起來(lái)是這樣的:

在Java中定義常量?jī)煞N常見策略

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

用整數(shù)定義常數(shù)

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

在Java中定義常量?jī)煞N常見策略

定義整數(shù)常量時(shí)要問的第一個(gè)問題是將它們放置在何處。我們是否將它們直接放在班級(jí)中?還是給他們上課?

由于days非常通用,而且不一定只連接到Order類型的對(duì)象,因此我們將在它們自己的類WeekDay中定義它們。

在Java中定義常量?jī)煞N常見策略

你可能注意到了私有構(gòu)造函數(shù)——這是為了避免客戶端實(shí)例化類。該類只保存靜態(tài)變量,這些變量沒有綁定到對(duì)象,因此不需要實(shí)例化該類。

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

在Java中定義常量?jī)煞N常見策略

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

到目前為止,還不錯(cuò)。這個(gè)設(shè)計(jì)肯定不會(huì)有什么問題吧?

假設(shè)你一年后會(huì)回到這個(gè)代碼,你必須檢查下訂單是否在周一發(fā)生。

在這種情況下,可以嘗試以下方法:

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

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

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

用枚舉定義常量

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

當(dāng)使用枚舉時(shí),常量類將如下所示:

在Java中定義常量?jī)煞N常見策略

注意,沒有私有構(gòu)造函數(shù)-不需要程序員(你!)強(qiáng)制該類是不可實(shí)例化的,因?yàn)槊杜e在默認(rèn)情況下是不可實(shí)例化的!

將工作日設(shè)置為順序的語(yǔ)法與整型常量的語(yǔ)法完全相同:

我們?nèi)绾卧谛瞧谖逄幚碛唵我矝]有什么不同:

關(guān)鍵的區(qū)別在于,這是在Order類中設(shè)置和比較weekday變量值的唯一方法。

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

回想一下你完全忘記了的情景。

對(duì)于枚舉,這不再是一個(gè)問題。如果嘗試使用整數(shù)而不是工作日枚舉的成員,編譯器只會(huì)拋出一個(gè)錯(cuò)誤,告訴您需要使用工作日枚舉。

換言之,唯一能檢查訂單是否在星期五發(fā)生的是:

就如上面這樣,再清楚不過(guò)了。

不再被迫記住constants類,如果有任何客戶機(jī)要使用您的代碼,他們不必懷疑Monday實(shí)際上是由0還是1表示的。

我希望這個(gè)例子向您展示了為什么在定義常量時(shí)應(yīng)該考慮在整數(shù)上使用枚舉。

枚舉將使你的代碼不易出錯(cuò)、更易于閱讀和維護(hù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9520

    瀏覽量

    157022
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3001

    瀏覽量

    116429
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TVS vs TSS 兩種保護(hù)機(jī)制的深度博弈

    現(xiàn)代電子設(shè)備日益精密、工作環(huán)境愈發(fā)復(fù)雜的背景下,電路安全問題尤其是雷擊和瞬態(tài)過(guò)壓(Surge)防護(hù),已成為產(chǎn)品設(shè)計(jì)不可忽視的重要環(huán)節(jié)。其中,TVS(瞬態(tài)電壓抑制器)與TSS(晶閘管浪涌抑制器)是兩種廣泛應(yīng)用的浪涌保護(hù)器件。盡
    的頭像 發(fā)表于 02-12 15:23 ?687次閱讀
    TVS vs TSS <b class='flag-5'>兩種</b>保護(hù)機(jī)制的深度博弈

    使用Firebase AI Logic生成圖像模型的兩種新功能

    為您的應(yīng)用添加自定義圖像,能夠顯著改善和個(gè)性化用戶體驗(yàn),有效提高用戶參與度。本文將探討使用 Firebase AI Logic 生成圖像的兩種新功能: 其一是 Imagen 專屬編輯功能預(yù)覽版;其二
    的頭像 發(fā)表于 11-30 09:28 ?426次閱讀

    位操作的常見錯(cuò)誤與應(yīng)對(duì)策略

    (一)誤操作其他位的防范 進(jìn)行位操作時(shí),一個(gè)常見的錯(cuò)誤就是誤操作其他位,這可能導(dǎo)致系統(tǒng)出現(xiàn)意想不到的行為。為了避免這種錯(cuò)誤,使用位掩碼是一非常有效的方法。位掩碼是一個(gè)二進(jìn)制數(shù),它的每一位對(duì)應(yīng)
    發(fā)表于 11-24 07:50

    C語(yǔ)言的常量介紹

    程序執(zhí)行過(guò)程,值不發(fā)生改變的量稱為常量。 mtianyan: C語(yǔ)言的常量可以分為直接常量和符號(hào)
    發(fā)表于 11-24 07:12

    用PLC實(shí)現(xiàn)卷徑計(jì)算的兩種算法

    卷徑計(jì)算,是動(dòng)態(tài)計(jì)算如鋼卷,紙卷等存料量的一方法,它是實(shí)現(xiàn)張力控制和自動(dòng)充放料、以及甩尾控制的重要前提。卷徑計(jì)算目前主流的方法有兩種,一是根據(jù)機(jī)列速度(產(chǎn)線速度)和和被測(cè)卷的轉(zhuǎn)動(dòng)角速度求得;另一
    的頭像 發(fā)表于 11-14 16:54 ?2080次閱讀
    用PLC實(shí)現(xiàn)卷徑計(jì)算的<b class='flag-5'>兩種</b>算法

    兩種常見的除法器工作原理

    串行結(jié)構(gòu),計(jì)算速度慢,且需要的時(shí)鐘周期數(shù)不確定。 加減交替法是一不恢復(fù)余數(shù)的除法。恢復(fù)余數(shù)的除法設(shè)第i次減法計(jì)算后的余數(shù)小于0,則恢復(fù)余數(shù)法的操作是,其中Y是除數(shù),是余數(shù)。則第i+1次的余數(shù)如下
    發(fā)表于 10-21 13:28

    兩種TVS有啥不同?

    當(dāng)我們查看TVS二極管的規(guī)格書,常會(huì)看到有以下兩種種引腳功能標(biāo)識(shí)圖:對(duì)于初學(xué)者,看到感到疑惑,他們一樣嗎?他們有啥區(qū)別?為啥有的個(gè)尖頭往外,陽(yáng)極連在一起,有的個(gè)尖頭往里,陰極連在一起?一連三問。EMC小哥根據(jù)自己經(jīng)驗(yàn)略作分析
    的頭像 發(fā)表于 09-15 20:27 ?799次閱讀
    這<b class='flag-5'>兩種</b>TVS有啥不同?

    兩種散熱路徑的工藝與應(yīng)用解析

    背景:兩種常見的散熱設(shè)計(jì)思路 大電流或高功率器件應(yīng)用,散熱和載流能力是PCB設(shè)計(jì)必須解決的難題。
    的頭像 發(fā)表于 09-15 14:50 ?784次閱讀

    CMOS 2.0與Chiplet兩種創(chuàng)新技術(shù)的區(qū)別

    摩爾定律正在減速。過(guò)去我們靠不斷縮小晶體管尺寸提升芯片性能,但如今物理極限越來(lái)越近。在這樣的背景下,兩種創(chuàng)新技術(shù)站上舞臺(tái):CMOS 2.0 和 Chiplet(芯粒)。它們都在解決 “如何讓芯片更強(qiáng)” 的問題,但思路卻大相徑庭。
    的頭像 發(fā)表于 09-09 15:42 ?1018次閱讀

    貼片晶振兩種常見封裝介紹

    貼片晶體振蕩器作為關(guān)鍵的時(shí)鐘頻率元件,其性能直接關(guān)系到系統(tǒng)運(yùn)行的穩(wěn)定性。今天,凱擎小妹帶大家聊聊貼片晶振兩種常見封裝——金屬面封裝與陶瓷面封裝。
    的頭像 發(fā)表于 07-04 11:29 ?1262次閱讀
    貼片晶振<b class='flag-5'>中</b><b class='flag-5'>兩種</b><b class='flag-5'>常見</b>封裝介紹

    六相永磁同步電機(jī)串聯(lián)系統(tǒng)控制的兩種方法分析研究

    摘要:筆者以逆變器驅(qū)動(dòng)合雙Y移 30°永磁同步電機(jī)(PMSM)的串聯(lián)系統(tǒng)為例,給出了串聯(lián)系統(tǒng)的工作原理,采用i0的失量控制策略及電流滯環(huán)控制和PWM載波控制兩種拉制串聯(lián)解楀的方法。
    發(fā)表于 06-10 13:09

    兩種驅(qū)動(dòng)方式下永磁直線開關(guān)磁鏈電機(jī)的研究

    摘要:永磁開關(guān)磁鏈電機(jī)數(shù)學(xué)模型可以等效為永磁無(wú)刷電機(jī),普遍采用方波驅(qū)動(dòng)方式。在有限元基礎(chǔ)上分析6/7極直線式磁鏈電機(jī)反電勢(shì)波形,采用方波和正弦波驅(qū)動(dòng)方式,比較兩種方式下的電流、電壓、平均推力大小
    發(fā)表于 06-09 16:18

    兩種感應(yīng)電機(jī)磁鏈觀測(cè)器的參數(shù)敏感性研究

    模式和發(fā)電模式下對(duì)閉環(huán)電壓電流模型磁鏈觀測(cè)器和滑模磁鏈觀測(cè)器參數(shù)敏感性進(jìn)行了研究,通過(guò)仿真和實(shí)驗(yàn)比較了這兩種觀測(cè)器對(duì)定、轉(zhuǎn)子電阻及勵(lì)磁電感的敏感性。同時(shí)還研究了基于這兩種觀測(cè)器的模型參考自適應(yīng)系統(tǒng)
    發(fā)表于 06-09 16:16

    銣原子鐘與CPT原子鐘:兩種時(shí)間標(biāo)準(zhǔn)的區(qū)別

    物理學(xué)的世界,精密的時(shí)間測(cè)量是至關(guān)重要的。這就需要一個(gè)高度準(zhǔn)確且穩(wěn)定的時(shí)間標(biāo)準(zhǔn),這就是原子鐘。今天我們將探討兩種重要的原子鐘:銣原子鐘和CPT原子鐘,以及它們之間的主要區(qū)別。首先,我們來(lái)了解一下
    的頭像 發(fā)表于 05-22 15:49 ?735次閱讀
    銣原子鐘與CPT原子鐘:<b class='flag-5'>兩種</b>時(shí)間標(biāo)準(zhǔn)的區(qū)別

    電機(jī)大范圍調(diào)速的綜合電壓調(diào)制策略

    使用DPWM策略,并提出一基于零矢量分配的過(guò)渡策略,使得兩種調(diào)制方式可以平滑的過(guò)渡。這種方法使得電壓波形質(zhì)量,開關(guān)損耗以及電壓線性范圍得到優(yōu)化。最后,搭建了基于Simulink的仿真
    發(fā)表于 04-01 14:51