中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

甘肅省建設(shè)廳官方網(wǎng)站張睿長沙互聯(lián)網(wǎng)網(wǎng)站建設(shè)

甘肅省建設(shè)廳官方網(wǎng)站張睿,長沙互聯(lián)網(wǎng)網(wǎng)站建設(shè),注冊一個公司需要幾個人,深圳網(wǎng)站建設(shè) 信科網(wǎng)絡(luò)枚舉(enum) enum全稱enumeration,JDK 1.5中引入的新特性。在Java中,被enum關(guān)鍵字修飾的類型就是枚舉類型 可以將枚舉看成一個類,它繼承于java.lang.enum類,當定義一個枚舉類型時,每一個枚舉類型…

枚舉(enum)

enum全稱enumeration,JDK 1.5中引入的新特性。在Java中,被enum關(guān)鍵字修飾的類型就是枚舉類型
可以將枚舉看成一個類,它繼承于java.lang.enum類,當定義一個枚舉類型時,每一個枚舉類型成員都可以看作是枚舉類型的一個實例,枚舉類型成員默認被public static final修飾(所有的枚舉值都是類靜態(tài)常量),所以當使用枚舉類型成員時直接使用枚舉類型名稱調(diào)用枚舉類型成員即可。

enum Color { RED, GREEN, BLUE }

如果枚舉不添加任何方法,枚舉值默認為從0開始的有序數(shù)值。以Color枚舉類型舉例,它的枚舉常量依次為RED:0,GREEN:1,BLUE:2。

枚舉的好處:可以將常量組織起來,統(tǒng)一進行管理
枚舉的典型應(yīng)用場景:錯誤碼、狀態(tài)機等
特性:除了不能繼承,基本上可以將enum看做一個常規(guī)的類


作用?

枚舉是一種規(guī)范,它規(guī)范了參數(shù)的形式,這樣就可以不用考慮類型的不匹配并且顯式的替代了int型參數(shù)可能帶來的模糊概念。枚舉像一個類,又像一個數(shù)組。


優(yōu)勢

(1)類型安全
(2)緊湊有效的數(shù)據(jù)定義
(3)可以和程序其他部分完美交互
(4)運行效率高


本質(zhì)

盡管enum看起來像是一種新的數(shù)據(jù)類型,事實上,enum是一種受限制的類,并且具有自己的方法。創(chuàng)建enum時,編譯器會生成一個相關(guān)的類,這個類繼承自java.lang.Enum


構(gòu)造方法

在枚舉類型中,可以添加構(gòu)造方法,但是規(guī)定這個構(gòu)造方法必須為private修飾符或者默認修飾符所修飾

public enum Color {RED(1, "紅色"), GREEN(2, "綠色"), RED_ONE(1);private int index;private String value;private Color() {// 無參構(gòu)造}private Color(int index) {this.index = index;}private Color(int index, String value) {// 有參構(gòu)造this.index = index;this.value = value;}
}

保存枚舉值,應(yīng)該是要保存int值,如果保存字符串,在使用中英文切換可能就會出問題
枚舉類型可以實現(xiàn)一個或多個接口,但是不能繼承類。因為編譯器會默認將枚舉類型繼承自java.lang.Enum類,這一過程由編譯器完成
枚舉類型中的常量成員必須在其他成員之前定義,否則這個枚舉類型不會產(chǎn)生對象


方法

方法描述
values()返回enum實例的數(shù)組。數(shù)組中的元素嚴格保持在enum中聲明時的順序
name()返回實例名
ordinal()返回實例聲明時的次序,從0開始
getDeclaringClass()返回實例所屬的enum類型
equals()判斷是否為同一個對象
可以使用==來比較enum實例。此外,java.lang.Enum實現(xiàn)了Comparable和 Serializable 接口,所以也提供 compareTo()方法

為枚舉顯示的賦值
Java不允許使用 = 為枚舉常量賦值
enum可以添加普通方法、靜態(tài)方法、抽象方法、構(gòu)造方法

Java雖然不能直接為實例賦值,但是它有更優(yōu)秀的解決方案:為enum添加方法來間接實現(xiàn)顯示賦值。創(chuàng)建enum時,可以為其添加多種方法,甚至可以為其添加構(gòu)造方法

注意:如果要為enum定義方法,那么必須在enum的最后一個實例尾部添加一個分號。此外,在enum中,必須先定義實例,不能將字段或方法定義在實例前面。否則,編譯器會報錯


常見用法

1.常量

枚舉可以把相關(guān)的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法

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

2.Switch

JDK1.6之前的switch語句只支持int,char,enum類型,使用枚舉,能讓代碼可讀性更強

enum Color {  GREEN, YELLOW, RED
}  class TrafficLight {  Color color = Color.RED;  public void change() {  switch (color) {  case RED:  color = Color.GREEN;  break;  case YELLOW:  color = Color.RED;  break;  case GREEN:  color = Color.YELLOW;  break;  }  }  }

3.向枚舉中添加新方法

public enum Color {RED(1, "紅色"), GREEN(2, "綠色"), BLANK(3, "白色"), YELLO(4, "黃色");// 成員變量private int index;private String name;private Color(int index, String name) {// 構(gòu)造方法this.name = name;this.index = index;}// 普通方法public static String getName(int index) {  //定義了才能使用RED(1, "紅色")for (Color c : Color.values()) {if (c.getIndex() == index) {return c.name;}}return null;}// getter、setterpublic 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;}
}

4.覆蓋枚舉的方法

toString()方法覆蓋

public enum Color {RED(1, "紅色"), GREEN(2, "綠色"), BLANK(3, "白色"), YELLO(4, "黃色");// 成員變量private int index;private String name;private Color(int index, String name) {// 構(gòu)造方法this.name = name;this.index = index;}@Overridepublic String toString() {// 覆蓋toString方法return this.index + "_" + this.name;}
}

5.實現(xiàn)接口

所有的枚舉都繼承自java.lang.Enum類。由于Java不支持多繼承,所以枚舉對象不能再繼承其他類

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

6.使用接口組織枚舉

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

7.枚舉集合

java.util.EnumSet和java.util.EnumMap是兩個枚舉集合
EnumSet保證集合中的元素不重復(fù);EnumMap中的 key是enum類型,而value則可以是任意類型


枚舉遍歷

for (RnumTest e : RnumTest.values()) {System.out.println(e.toString());
}




上一篇:Java IO數(shù)據(jù)流 ?????????????????????? 下一篇:Java泛型




http://www.risenshineclean.com/news/6600.html

相關(guān)文章:

  • 建筑公司企業(yè)宣傳冊溫州企業(yè)網(wǎng)站排名優(yōu)化
  • 北京 高端網(wǎng)站定制seo最新優(yōu)化技術(shù)
  • 怎么建網(wǎng)站鏈接效果最好的推廣軟件
  • wordpress 暗箱長春seo公司
  • 專業(yè)做網(wǎng)站咨詢互聯(lián)網(wǎng)營銷策劃是做什么的
  • asp綠色網(wǎng)站源碼什么是網(wǎng)站推廣
  • ps做網(wǎng)站要求高嗎企業(yè)qq一年多少費用
  • 慈溪做無痛同濟 amp 網(wǎng)站如何宣傳推廣產(chǎn)品
  • 個人網(wǎng)站備案做論壇今天上海最新新聞事件
  • wordpress logo不顯示免費使用seo軟件
  • 如何建設(shè)企業(yè)人力資源網(wǎng)站蘇州seo培訓(xùn)
  • 近五年關(guān)于網(wǎng)站建設(shè)的參考文獻怎么快速優(yōu)化關(guān)鍵詞排名
  • 岳陽縣住房和城鄉(xiāng)建設(shè)局網(wǎng)站互聯(lián)網(wǎng)培訓(xùn)機構(gòu)排名前十
  • 江蘇設(shè)計網(wǎng)站電話網(wǎng)絡(luò)輿情處理公司
  • 網(wǎng)站 chat now怎么做各大網(wǎng)站收錄提交入口
  • 用asp做網(wǎng)站優(yōu)勢青島百度網(wǎng)站排名
  • 上海專業(yè)網(wǎng)站建設(shè)渠道seo優(yōu)化推廣業(yè)務(wù)員招聘
  • 去泰國做賭博發(fā)網(wǎng)站seo免費診斷
  • 網(wǎng)頁網(wǎng)站制作維護十大經(jīng)典事件營銷案例分析
  • 網(wǎng)站的優(yōu)化與網(wǎng)站建設(shè)有關(guān)嗎產(chǎn)品營銷
  • 域名查詢whois臨沂網(wǎng)站建設(shè)優(yōu)化
  • 完善企業(yè)網(wǎng)站建設(shè)最經(jīng)典的營銷案例
  • 海曙網(wǎng)站制作網(wǎng)絡(luò)熱詞大全
  • 網(wǎng)站設(shè)計摘要 優(yōu)幫云外鏈收錄網(wǎng)站
  • 個人求職網(wǎng)站如何做官網(wǎng)站內(nèi)推廣內(nèi)容
  • 做外貿(mào)需要哪些網(wǎng)站有哪些成都營銷型網(wǎng)站制作
  • 網(wǎng)站banner效果自己建立網(wǎng)站步驟
  • 政府網(wǎng)站建設(shè) 托管西安seo診斷
  • 微網(wǎng)站怎么做微名片seo網(wǎng)站排名
  • 寶安網(wǎng)站建設(shè)哪家好站長之家工具高清