日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

如何在JAVA中定義常量?

 

 

圍繞JAVA中的常量主題似乎存在很多混淆,有的人使用整數或字符串來定義常量,而有的人則使用枚舉

我還遇到了在自己的接口中定義的常量 —— 使用常量的類必須實現接口。該策略通常被稱為界面常量設計模式。

在本文中,我們將介紹在Java中存儲常量的兩種最常見的策略: 整數枚舉。

假設我們有一個表示在線商店中的訂單的類,我們希望跟蹤訂單發生的一周中的哪一天。

如何在JAVA中定義常量?

 

請注意,該類目前不會編譯 - [datatype]只是我們將使用的常量類型的占位符。

用整數定義常量

在Java中定義常量的最常用方法之一是通過整數,其中整數變量是靜態的。

如何在JAVA中定義常量?

 

定義整數常量時要注意的第一個問題是放置它們的位置。我們是直接將它們直接放在Order類中?還是給他們自己的Class呢?

由于days非常普遍,而且不一定只連接到Order類型的對象,所以我們將在它們自己的類WeekDay中定義它們。

如何在JAVA中定義常量?

 

您可能注意到了私有構造函數——這是為了避免客戶機實例化類。該類只包含靜態變量,這些變量不綁定到對象,因此不需要實例化該類。

現在,每當我們需要設定某一天的訂單,我們可以這樣做:

如何在JAVA中定義常量?

 

當我們想檢查星期五的一個訂單時,我們可以簡單地調用write:

如何在JAVA中定義常量?

 

那么。這個設計就不會有問題了嗎?

假設你一年后來看這個代碼,要查看周一的訂單,但你忘記了WeekDay的類,這時候你可以嘗試這樣做:

如何在JAVA中定義常量?

 

星期一是一周的第一天,所以工作日應該是1,對吧?

但事實并非如此,因為靜態int變量Monday在我們的工作日類中被定義為0 !

這是一個很好的例子,說明了為什么應該避免使用整數常量。它們很容易出錯,容易混淆,而且很難調試。

用枚舉定義常量

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

當使用枚舉時,我們的constants類是這樣的:

如何在JAVA中定義常量?

 

注意,沒有私有構造函數——程序員(您!)沒有必要強制類是不可實例化的,因為枚舉在默認情況下是不可實例化的!

將WeekDay設置為一個順序的語法與整型常量完全相同:

如何在JAVA中定義常量?

 

同樣,我們也可以處理周五的訂單:

如何在JAVA中定義常量?

 

然而,關鍵的區別在于,這是在Order類中設置和比較WeekDay變量值的唯一方法。

order.setWeekDay (1)和(order.getWeekDay() == 1)將使編譯器拋出一個錯誤,因為您試圖使用integer類型的變量,而它們應該是WeekDay類型的變量!

對于枚舉,這不再是一個問題。如果您試圖使用整數而不是WeekDay枚舉的成員,編譯器只會拋出一個錯誤,告訴您需要使用WeekDay枚舉。

換句話說,唯一能幫你檢查周五是否有訂單的方法是:

如何在JAVA中定義常量?

 

您不再需要記住constants類,如果有客戶端要使用您的代碼,他們也不必擔心。

希望這個例子向您展示了為什么在定義常量時應該始終優先使用枚舉而不是整數。枚舉將使您的代碼更不容易出錯、更易于閱讀和更易于維護!

如果在JAVA學習上遇見不會的,或者想學Java的,私信我交流!

一個小提示:如果您希望擴展您的Java技能并成為一名高級Java開發人員,我強烈建議您購買一本由Joshua Bloch編寫的最暢銷的有效Java !

分享到:
標簽:常量 定義 JAVA
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定