chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

在Java中定義常量兩種常見策略

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

看起來是這樣的:

在Java中定義常量兩種常見策略

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

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

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

在Java中定義常量兩種常見策略

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

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

在Java中定義常量兩種常見策略

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

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

在Java中定義常量兩種常見策略

當(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è)很好的例子,說明了為什么應(yīng)該考慮避免使用整數(shù)常量。它們?nèi)菀壮鲥e(cuò)和混淆,并且很難調(diào)試。

用枚舉定義常量

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

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

在Java中定義常量兩種常見策略

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

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

我們?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ā)生的是:

就如上面這樣,再清楚不過了。

不再被迫記住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

    文章

    9005

    瀏覽量

    153766
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    覆銅的兩種形式是什么

    電子電路設(shè)計(jì)與制造領(lǐng)域,覆銅的實(shí)現(xiàn)形式多樣,其中大面積的覆銅和網(wǎng)格銅是最為常見且各具特色的兩種,它們不同的應(yīng)用場(chǎng)景下發(fā)揮著關(guān)鍵作用。 大面積的覆銅,顧名思義,是指在印刷電路板(PC
    的頭像 發(fā)表于 02-04 14:10 ?559次閱讀

    const定義的是不是常量

    C語言是如何定義常量的?const定義的算不算是常量? 常見的有這么幾種方式。 首先就是宏定義,
    的頭像 發(fā)表于 01-14 11:35 ?437次閱讀

    基于ISOS測(cè)試標(biāo)準(zhǔn),兩種封裝方式對(duì)鈣鈦礦太陽能電池性能影響分析

    鈣鈦礦太陽能電池(PSCs)極具潛力,但濕度和氧氣會(huì)導(dǎo)致其性能快速下降,因此封裝技術(shù)對(duì)提高其穩(wěn)定性至關(guān)重要。文章研究了兩種常見的封裝策略:基于層壓的玻璃-玻璃封裝(COM)和基于膠水的封裝(LAB
    的頭像 發(fā)表于 01-03 09:03 ?982次閱讀
    基于ISOS測(cè)試標(biāo)準(zhǔn),<b class='flag-5'>兩種</b>封裝方式對(duì)鈣鈦礦太陽能電池性能影響分析

    AMC1204有兩種封裝,SOIC-8和SOIC-16,功能一樣嗎?為什么要推出兩種封裝?

    呢?AMC1204,AMC1304這樣做有什么好處嗎? 2、AMC1204有兩種封裝,SOIC-8和SOIC-16,功能一樣嗎?為什么要推出兩種封裝?
    發(fā)表于 12-27 07:22

    芯片制造過程兩種刻蝕方法

    本文簡(jiǎn)單介紹了芯片制造過程兩種刻蝕方法 ? 刻蝕(Etch)是芯片制造過程相當(dāng)重要的步驟。 刻蝕主要分為干刻蝕和濕法刻蝕。 ①干法刻蝕 利用等離子體將不要的材料去除。 ②濕法刻蝕 利用腐蝕性
    的頭像 發(fā)表于 12-06 11:13 ?1618次閱讀
    芯片制造過程<b class='flag-5'>中</b>的<b class='flag-5'>兩種</b>刻蝕方法

    ETAS推出兩種全新網(wǎng)絡(luò)安全解決方案

    日前,作為領(lǐng)先的汽車軟件解決方案供應(yīng)商,ETAS近日德國多特蒙德舉辦的escar歐洲汽車網(wǎng)絡(luò)安全會(huì)議上宣布推出兩種全新的網(wǎng)絡(luò)安全解決方案。ESCRYPT車載電腦安全套件和ESCRYPT漏洞管理解決方案應(yīng)對(duì)了軟件定義車輛(SDV
    的頭像 發(fā)表于 11-26 16:00 ?723次閱讀

    Java 枚舉與策略模式、函數(shù)式接口的結(jié)合:實(shí)現(xiàn)高內(nèi)聚低耦合的設(shè)計(jì)

    ,通常會(huì)使用枚舉來定義業(yè)務(wù)上的一組常量,那除了簡(jiǎn)單地定義常量之外,我們?nèi)绾卫妹杜e來實(shí)現(xiàn)高內(nèi)聚、低耦合的設(shè)計(jì)呢?下面介紹下枚舉和
    的頭像 發(fā)表于 11-21 14:06 ?645次閱讀

    常見人體姿態(tài)評(píng)估顯示方式的兩種方式

    人體姿態(tài)評(píng)估中有兩種常見的顯示方式,分別是火柴人效果與BodyPix效果。其中火柴人效果本質(zhì)就是基于關(guān)鍵點(diǎn)的深度學(xué)習(xí)模型推理以后的顯示效果;Bodypix本質(zhì)就就是語義分割模型
    的頭像 發(fā)表于 11-11 11:21 ?661次閱讀
    <b class='flag-5'>常見</b>人體姿態(tài)評(píng)估顯示方式的<b class='flag-5'>兩種</b>方式

    噪聲傳導(dǎo)的兩種模式

    噪聲傳導(dǎo)有兩種模式,一為差模傳導(dǎo),一為共模傳導(dǎo)。
    的頭像 發(fā)表于 10-15 11:33 ?776次閱讀
    噪聲傳導(dǎo)的<b class='flag-5'>兩種</b>模式

    OPA277為何有Specified Voltage Range和Operating Voltage Range兩種定義?

    OPA277為何有Specified Voltage Range和Operating Voltage Range兩種定義?謝謝!
    發(fā)表于 09-26 07:32

    兩種常見的硬件消抖實(shí)現(xiàn)方式

    由于機(jī)械按鍵操作過程中會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,這種抖動(dòng)信號(hào)如果不加以處理,就可能導(dǎo)致單片機(jī)等電子設(shè)備誤判按鍵狀態(tài),從而引發(fā)錯(cuò)誤操作。本文將詳細(xì)介紹兩種常見的硬件消抖實(shí)現(xiàn)方式:RS觸發(fā)器和電容濾波。 RS
    的頭像 發(fā)表于 09-25 16:54 ?3736次閱讀
    <b class='flag-5'>兩種</b><b class='flag-5'>常見</b>的硬件消抖實(shí)現(xiàn)方式

    技術(shù)干貨驛站 ▏深入理解C語言:掌握常量,讓你的代碼更加穩(wěn)固高效!

    C語言的世界常量是一不可忽視的元素。無論你是在編寫簡(jiǎn)單的代碼,還是構(gòu)建復(fù)雜的系統(tǒng),常量都能為你的程序帶來更高的穩(wěn)定性和可靠性。在這篇
    的頭像 發(fā)表于 08-29 13:59 ?3536次閱讀
    技術(shù)干貨驛站 ▏深入理解C語言:掌握<b class='flag-5'>常量</b>,讓你的代碼更加穩(wěn)固高效!

    兩種電纜類型的特點(diǎn)及優(yōu)勢(shì)

    隨著技術(shù)的發(fā)展,電纜的材料和結(jié)構(gòu)不斷優(yōu)化,以滿足日益增長的電力需求和復(fù)雜的應(yīng)用環(huán)境。本文將詳細(xì)探討兩種廣泛使用的電纜類型——聚氯乙烯絕緣電纜和交聯(lián)聚乙烯絕緣電纜,它們的特點(diǎn)、優(yōu)勢(shì)及適用范圍。 一
    的頭像 發(fā)表于 08-28 16:23 ?1018次閱讀

    晶閘管的阻斷狀態(tài)有兩種是什么

    晶閘管(Thyristor)是一半導(dǎo)體器件,具有單向?qū)щ娦?,廣泛應(yīng)用于電力電子領(lǐng)域。晶閘管的阻斷狀態(tài)有兩種:正向阻斷狀態(tài)和反向阻斷狀態(tài)。以下是對(duì)這兩種阻斷狀態(tài)的分析。 正向阻斷狀態(tài) 正向阻斷狀態(tài)
    的頭像 發(fā)表于 08-14 16:49 ?1423次閱讀