當前位置:首頁 » 編程語言 » java枚舉常量

java枚舉常量

發布時間: 2022-12-20 02:45:21

java:這里的枚舉常量是如何定義的呢

枚舉(從JDK1.5開始有)
用於代表」實例已經固定「的類,而且定義時就必須在【第一行】創建初始化並列出來。
語法格式:
修飾符 enum 枚舉名{
//立即在第一行列出該枚舉的所有實例。

}

—— 修飾符 可以是 public | 省略 | abstract | final。 abstract與final必須出現其中一個。
—— 枚舉的構造器只能用private修飾。
—— 枚舉類的實例必須在第一行顯式的列出。

所有的枚舉都有一個values()方法,返回枚舉實例

switch(byte|short|char|int|String|枚舉)

●有了枚舉之後,它的實例已經創建出來了,只需要用它們就行了。
●枚舉可以有Field,方法,構造器(只能是private修飾),初始化塊,內部類。

列出枚舉值,並不是簡單的定義幾個枚舉值的變數名。
而是調用枚舉類的構造器來創建相應的實例。

定義枚舉的方法時要非常小心,

●包含抽象方法的枚舉類

●枚舉可以實現介面。

A。實現介面,並直接實現所有的抽象方法。
此時枚舉類不再是抽象枚舉了。

B。實現介面,但並不直接實現抽象方法。
此時枚舉類就只能是抽象枚舉類。

❷ java中的枚舉類和常量類區別在哪兒

說白了
枚舉就是將常量值限定在了指定的范圍,
比如定義常量 int型 可以鍵入 任何的int值
如果定義枚舉 裡面 有 int 型 1 2 3 那麼這個地方就只能鍵入1 2 3 中的一個,

❸ 如何使用java 枚舉定義常量

枚舉類:
publicenumColor{
RED("紅色",1),GREEN("綠色",2),BLANK("白色",3),YELLO("黃色",4);


privateStringname;
privateintindex;

privateColor(Stringname,intindex){
this.name=name;
this.index=index;
}

publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetIndex(){
returnindex;
}
publicvoidsetIndex(intindex){
this.index=index;
}
}

測試類:
publicclassB{

publicstaticvoidmain(String[]args){

//輸出某一枚舉的值
System.out.println(Color.RED.getName());
System.out.println(Color.RED.getIndex());

//遍歷所有的枚舉
for(Colorcolor:Color.values()){
System.out.println(color+"name:"+color.getName()+"index:"+color.getIndex());
}
}

}

輸出結果:
紅色
1
REDname:紅色index:1
GREENname:綠色index:2
BLANKname:白色index:3
YELLOname:黃色index:4

❹ java枚舉類型enum用法

用法如下:

用法一:常量 在JDK1.5之前,我們定義常量都是:public static fianl....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法

用法六:使用介面組織枚舉

用法七:關於枚舉集合的使用

❺ JAVA中的枚舉常量是什麼

枚舉用於聲明一組命名的常數,當一個變數有幾種可能的取值時,可以將它定義為枚舉類型。

  1. 任意兩個枚舉成員不能具有相同的名稱

  2. 在枚舉類型中聲明的第一個枚舉成員它的默值為0

  3. 允許多個枚舉成員有相同的值.

  4. 沒有顯示賦值的枚舉成員的值,總是前一個枚舉成員的值+1.

e.g:

public enum Number

{

a=1,

b,

c=1,

d

} ;

b的值為2,d的值為2.

❻ java枚舉與常量類區別

常量publicclassConstant{publicstaticfinalStringCONST_ONE="bb";publicstaticfinalStringCONST_TWO="cc";}

  • 常量作為參數時,是String,int等弱類型,開發人員可以傳入沒有在常量介面里定義的值,這個問題無法通過編譯器發現。

  • 由於開發人員可以直接寫常量,所以不能用==對比,只能用equals對比,不能優化性能。

  • 開發人員沒有參考資料時,不可能知道某個int類型的參數到底應該賦什麼內容。

  • 編譯時,是直接把常量的值編譯到類的二進制代碼里,常量的值在升級中變化後,需要重新編譯引用常量的類,因為裡面存的是舊值。

  • 如果常量類的構造器不私有,無法限制開發員繼承/實現介面,開發員能夠在子介面里繼續添加常量.而這些常量可能得不到祖先層的支持。

  • 枚舉類

  • publicclassConstant{privateStringname;privateEnumClassA(){this.name=name;}_ONE=newConstant("bb");_ONE=newConstant("cc");}

  • 私有構造函數,避免被繼承和擴展。

  • 定義方法的參數時,必須用枚舉常量類類型,如上面的Constant,這樣就轉變成了強類型,不會出現弱類型引用的問題。

  • 常量值地址唯一,可以用==直接對比,性能會有提高。

  • 編譯時,沒有把常量值編譯到代碼里,即使常量的值發生變化,也不會影響引用常量的類。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:525
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:24
linux485 發布:2025-07-05 14:38:28 瀏覽:304
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:754
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:431
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:698
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:240
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:685
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:283
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:834