99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

java代碼添加枚舉類型 java類內(nèi)部定義枚舉

怎樣在Java中使用嵌套枚舉類型

Java語言中的枚舉類型的使用方法如下:

創(chuàng)新互聯(lián)建站從2013年成立,先為溫州等服務建站,溫州等地企業(yè),進行企業(yè)商務咨詢服務。為溫州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

用法一:常量;

public enum Color { RED, GREEN, BLANK, YELLOW }

用法二:switch;

public class Test { public enum Color { RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4); // 成員變量 private String name; private int index; // 構(gòu)造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 覆蓋方法 @Override public String toString() { return this.index + "_" + this.name; } } public static void main(String[] args) { System.out.println(Color.RED.toString()); }}

用法五:實現(xiàn)接口;

public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour { RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4); // 成員變量 private String name; private int index; // 構(gòu)造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 接口方法 @Override public String getInfo() { return this.name; } // 接口方法 @Override public void print() { System.out.println(this.index + ":" + this.name); } }

用法六:使用接口組織枚舉。

public interface Food { enum Coffee implements Food { BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO } enum Dessert implements Food { FRUIT, CAKE, GELATO }}

以上就是Java語言中枚舉類型的基本使用方法。

Java語言中的枚舉類型如何使用?

Java語言中的枚舉類型的使用方法如下:

用法一:常量;

public?enum?Color?{??

RED,?GREEN,?BLANK,?YELLOW??

}

用法二:switch;

enum?Signal?{

GREEN,?YELLOW,?RED

}

public?class?TrafficLight?{

Signal?color?=?Signal.RED;

public?void?change()?{

switch?(color)?{

case?RED:

color?=?Signal.GREEN;

break;

case?YELLOW:

color?=?Signal.RED;

break;

case?GREEN:

color?=?Signal.YELLOW;

break;

}

}

}

用法三:向枚舉中添加新方法;

public?enum?Color?{

RED("紅色",?1),?GREEN("綠色",?2),?BLANK("白色",?3),?YELLO("黃色",?4);

//?成員變量

private?String?name;

private?int?index;

//?構(gòu)造方法

private?Color(String?name,?int?index)?{

this.name?=?name;

this.index?=?index;

}

//?普通方法

public?static?String?getName(int?index)?{

for?(Color?c?:?Color.values())?{

if?(c.getIndex()?==?index)?{

return?c.name;

}

}

return?null;

}

//?get?set?方法

public?String?getName()?{

return?name;

}

public?void?setName(String?name)?{

this.name?=?name;

}

public?int?getIndex()?{

return?index;

}

public?void?setIndex(int?index)?{

this.index?=?index;

}

}

用法四:覆蓋枚舉的方法;

public?class?Test?{

public?enum?Color?{

RED("紅色",?1),?GREEN("綠色",?2),?BLANK("白色",?3),?YELLO("黃色",?4);

//?成員變量

private?String?name;

private?int?index;

//?構(gòu)造方法

private?Color(String?name,?int?index)?{

this.name?=?name;

this.index?=?index;

}

//?覆蓋方法

@Override

public?String?toString()?{

return?this.index?+?"_"?+?this.name;

}

}

public?static?void?main(String[]?args)?{

System.out.println(Color.RED.toString());

}

}

用法五:實現(xiàn)接口;

public?interface?Behaviour?{

void?print();

String?getInfo();

}

public?enum?Color?implements?Behaviour?{

RED("紅色",?1),?GREEN("綠色",?2),?BLANK("白色",?3),?YELLO("黃色",?4);

//?成員變量

private?String?name;

private?int?index;

//?構(gòu)造方法

private?Color(String?name,?int?index)?{

this.name?=?name;

this.index?=?index;

}

//?接口方法

@Override

public?String?getInfo()?{

return?this.name;

}

//?接口方法

@Override

public?void?print()?{

System.out.println(this.index?+?":"?+?this.name);

}

}

用法六:使用接口組織枚舉。

public?interface?Food?{

enum?Coffee?implements?Food?{

BLACK_COFFEE,?DECAF_COFFEE,?LATTE,?CAPPUCCINO

}

enum?Dessert?implements?Food?{

FRUIT,?CAKE,?GELATO

}

}

以上就是Java語言中枚舉類型的基本使用方法。

java枚舉類型

java 枚舉類型enum 的使用

最近跟同事討論問題的時候,突然同事提到我們?yōu)槭裁磈ava 中定義的常量值不采用enmu 枚舉類型,而采用public final static 類型來定義呢?以前我們都是采用這種方式定義的,很少采用enum 定義,所以也都沒有注意過,面對突入起來的問題,還真有點不太清楚為什么有這樣的定義。既然不明白就抽時間研究下吧。

Java 中的枚舉類型采用關(guān)鍵字enum 來定義,從jdk1.5才有的新類型,所有的枚舉類型都是繼承自Enum 類型。要了解枚舉類型,建議大家先打開jdk 中的Enum類簡單讀一下,這個類里面定義了很多protected 方法,比如構(gòu)造函數(shù),如果要使用這些方法我們可以把枚舉類型定義到當前類中。每個枚舉類型,都有自己的名字和順序,當我們輸出一個枚舉類型的時候,會輸入枚舉類型的name ,具體可以參考下面的例子。

一、 通常定義常量方法

我們通常利用public final static 方法定義的代碼如下,分別用1 表示紅燈,3 表示綠燈,2 表示黃燈。

package com.csdn.myEnum;

public class Light {

/* 紅燈 */

public final static int RED =1;

/* 綠燈 */

public final static int GREEN =3;

/* 黃燈 */

public final static int YELLOW =2;

}

二、 枚舉類型定義常量方法

枚舉類型的簡單定義方法如下,我們似乎沒辦法定義每個枚舉類型的值。比如我們定義紅燈、綠燈和黃燈的代碼可能如下:

public enum Light {

RED , GREEN , YELLOW ;

}

我們只能夠表示出紅燈、綠燈和黃燈,但是具體的值我們沒辦法表示出來。別急,既然枚舉類型提供了構(gòu)造函數(shù),我們可以通過構(gòu)造函數(shù)和覆寫toString方法來實現(xiàn)。首先給Light 枚舉類型增加構(gòu)造方法,然后每個枚舉類型的值通過構(gòu)造函數(shù)傳入對應的參數(shù),同時覆寫toString 方法,在該方法中返回從構(gòu)造函數(shù)中傳入的參數(shù),改造后的代碼如下:

public enum Light {

// 利用構(gòu)造函數(shù)傳參

RED (1), GREEN (3), YELLOW (2);

// 定義私有變量

private int nCode ;

// 構(gòu)造函數(shù),枚舉類型只能為私有

private Light( int _nCode) {

this . nCode = _nCode;

}

@Override

public String toString() {

return String.valueOf ( this . nCode );

}

}

三、 完整示例代碼

枚舉類型的完整演示代碼如下:

package com.csdn.myEnum;

import java.util.EnumMap;

import java.util.EnumSet;

public class LightTest {

// 1. 定義枚舉類型

public enum Light {

// 利用構(gòu)造函數(shù)傳參

RED (1), GREEN (3), YELLOW (2);

// 定義私有變量

private int nCode ;

// 構(gòu)造函數(shù),枚舉類型只能為私有

private Light( int _nCode) {

this . nCode = _nCode;

}

@Override

public String toString() {

return String.valueOf ( this . nCode );

}

}

/**

* @param args

*/

public static void main(String[] args ) {

// 1. 遍歷枚舉類型

System. out .println( " 演示枚舉類型的遍歷 ......" );

testTraversalEnum ();

// 2. 演示 EnumMap 對象的使用

System. out .println( " 演示 EnmuMap 對象的使用和遍歷 ....." );

testEnumMap ();

// 3. 演示 EnmuSet 的使用

System. out .println( " 演示 EnmuSet 對象的使用和遍歷 ....." );

testEnumSet ();

}

/**

* 演示枚舉類型的遍歷

*/

private static void testTraversalEnum() {

Light[] allLight = Light.values ();

for (Light aLight : allLight) {

System. out .println( " 當前燈 name : " + aLight.name());

System. out .println( " 當前燈 ordinal : " + aLight.ordinal());

System. out .println( " 當前燈: " + aLight);

}

}

/**

* 演示 EnumMap 的使用, EnumMap 跟 HashMap 的使用差不多,只不過 key 要是枚舉類型

*/

private static void testEnumMap() {

// 1. 演示定義 EnumMap 對象, EnumMap 對象的構(gòu)造函數(shù)需要參數(shù)傳入 , 默認是key 的類的類型

EnumMapLight, String currEnumMap = new EnumMapLight, String(

Light. class );

currEnumMap.put(Light. RED , " 紅燈 " );

currEnumMap.put(Light. GREEN , " 綠燈 " );

currEnumMap.put(Light. YELLOW , " 黃燈 " );

// 2. 遍歷對象

for (Light aLight : Light.values ()) {

System. out .println( "[key=" + aLight.name() + ",value="

+ currEnumMap.get(aLight) + "]" );

}

}

/**

* 演示 EnumSet 如何使用, EnumSet 是一個抽象類,獲取一個類型的枚舉類型內(nèi)容BR/

* 可以使用 allOf 方法

*/

private static void testEnumSet() {

EnumSetLight currEnumSet = EnumSet.allOf (Light. class );

for (Light aLightSetElement : currEnumSet) {

System. out .println( " 當前 EnumSet 中數(shù)據(jù)為: " + aLightSetElement);

}

}

}

執(zhí)行結(jié)果如下:

演示枚舉類型的遍歷 ......

當前燈 name : RED

當前燈 ordinal : 0

當前燈: 1

當前燈 name : GREEN

當前燈 ordinal : 1

當前燈: 3

當前燈 name : YELLOW

當前燈 ordinal : 2

當前燈: 2

演示 EnmuMap 對象的使用和遍歷 .....

[key=RED,value= 紅燈 ]

[key=GREEN,value= 綠燈 ]

[key=YELLOW,value= 黃燈 ]

演示 EnmuSet 對象的使用和遍歷 .....

當前 EnumSet 中數(shù)據(jù)為: 1

當前 EnumSet 中數(shù)據(jù)為: 3

當前 EnumSet 中數(shù)據(jù)為: 2

四、 通常定義常量方法和枚舉定義常量方法區(qū)別

以下內(nèi)容可能有些無聊,但絕對值得一窺

1. 代碼:

public class State {

public static final int ON = 1;

public static final Int OFF= 0;

}

有什么不好了,大家都這樣用了很長時間了,沒什么問題啊。

首先,它不是類型安全的。你必須確保是int

其次,你還要確保它的范圍是0 和1

最后,很多時候你打印出來的時候,你只看到 1 和0 ,

但其沒有看到代碼的人并不知道你的企圖,拋棄你所有舊的public static final 常量

2. 可以創(chuàng)建一個enum 類,把它看做一個普通的類。除了它不能繼承其他類了。(java 是單繼承,它已經(jīng)繼承了Enum),

可以添加其他方法,覆蓋它本身的方法

3. switch() 參數(shù)可以使用enum 了

4. values() 方法是編譯器插入到enum 定義中的static 方法,所以,當你將enum 實例向上轉(zhuǎn)型為父類Enum 是,values() 就不可訪問了。解決辦法:在Class中有一個getEnumConstants() 方法,所以即便Enum 接口中沒有values() 方法,我們?nèi)匀豢梢酝ㄟ^Class 對象取得所有的enum 實例

5. 無法從enum 繼承子類,如果需要擴展enum 中的元素,在一個接口的內(nèi)部,創(chuàng)建實現(xiàn)該接口的枚舉,以此將元素進行分組。達到將枚舉元素進行分組。

6. 使用EnumSet 代替標志。enum 要求其成員都是唯一的,但是enum 中不能刪除添加元素。

7. EnumMap 的key 是enum ,value 是任何其他Object 對象。

8. enum 允許程序員為eunm 實例編寫方法。所以可以為每個enum 實例賦予各自不同的行為。

9. 使用enum 的職責鏈(Chain of Responsibility) . 這個關(guān)系到設(shè)計模式的職責鏈模式。以多種不同的方法來解決一個問題。然后將他們鏈接在一起。當一個請求到來時,遍歷這個鏈,直到鏈中的某個解決方案能夠處理該請求。

10. 使用enum 的狀態(tài)機

11. 使用enum 多路分發(fā)

分享文章:java代碼添加枚舉類型 java類內(nèi)部定義枚舉
文章位置:http://www.yijiale78.com/article32/hhipsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)App開發(fā)靜態(tài)網(wǎng)站全網(wǎng)營銷推廣企業(yè)建站企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)