使用Java怎么實(shí)現(xiàn)一個枚舉類接口-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)使用Java怎么實(shí)現(xiàn)一個枚舉類接口,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機(jī)網(wǎng)站制作設(shè)計等網(wǎng)站方面業(yè)務(wù)。

Java可以用來干什么

Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。

枚舉類可以實(shí)現(xiàn)一個或多個接口。與普通類實(shí)現(xiàn)接口完全一樣,枚舉類實(shí)現(xiàn)接口時,需要實(shí)現(xiàn)該接口所包含的方法。

如果需要每個枚舉值在調(diào)用同一個方法時呈現(xiàn)不同的行為,則可以讓每個枚舉值在{...}匿名塊中實(shí)現(xiàn)自己的業(yè)務(wù)邏輯。

public interface IGradeHandler {
  String getGrade(String studentName);
}
public enum GradeHandlerEnum implements IGradeHandler {
  //five grade levels A B C D E
  A("90~100") {
    @Override
    public String getGrade(String studentName) {
      return studentName + " Outstanding";
    }
  },
  E("0~59") {
    @Override
    public String getGrade(String studentName) {
      return studentName + " Fail";
    }
  };
  private String score;

  GradeHandlerEnum(String score) {
    this.score = score;
  }

  public String getScore() {
    return this.score;
  }

  public static void main(String[] args) {
    GradeHandlerEnum a = GradeHandlerEnum.A;
    GradeHandlerEnum e = GradeHandlerEnum.valueOf("E");
    System.out.println( a.getGrade("Lucy"));
    System.out.println( e.getGrade("Tom"));
  }
}

為了方便測試,示例只定義了A和E兩個等級,執(zhí)行結(jié)果如下:

Lucy Outstanding
Tom Fail

反編譯枚舉類

在《Java枚舉抽象方法實(shí)例解析》中介紹了枚舉類型的簡單使用,現(xiàn)在有必要來了解一下它的基本實(shí)現(xiàn)原理。實(shí)際上在使用關(guān)鍵字enum創(chuàng)建枚舉類并編譯后,編譯器會生成一些相關(guān)的類,這些類繼承了Java API中的java.lang.Enum類,也就是說通過關(guān)鍵字enum創(chuàng)建的枚舉類在編譯后事實(shí)上也是一個類類型而且該類繼承自java.lang.Enum類。

IGradeHandler.class
GradeHandlerEnum.class
GradeHandlerEnum$1.class
GradeHandlerEnum$2.class

使用javac編譯GradeHandlerEnum.java文件后,生成四個class文件,其中,GradeHandlerEnum.class是枚舉類型,這也就驗證前面所說的使用關(guān)鍵字enum定義枚舉類并編譯后,編譯器會自動幫助我們生成一個與枚舉相關(guān)的類。使用jd-gui反編譯后的主要class文件如下:

import java.io.PrintStream;

public enum GradeHandlerEnum implements IGradeHandler {
// 編譯后生成兩個class文件GradeHandlerEnum$1和GradeHandlerEnum$2
 A("90~100"), E("0~59");
 
 private String score;
 //私有構(gòu)造函數(shù)
 private GradeHandlerEnum(String paramString) {
  this.score = paramString;
 }
 
 public String getScore() {
  return this.score;
 }
 
 public static void main(String[] paramArrayOfString) {
//實(shí)例化枚舉實(shí)例,變量名由系統(tǒng)生成
  GradeHandlerEnum localGradeHandlerEnum1 = A;
  GradeHandlerEnum localGradeHandlerEnum2 = valueOf("E");
  System.out.println(localGradeHandlerEnum1.getGrade("Lucy"));
  System.out.println(localGradeHandlerEnum2.getGrade("Tom"));
 }
}
//枚舉值A(chǔ)對應(yīng)的枚舉類
enum GradeHandlerEnum$1{
 GradeHandlerEnum$1(String paramString1) {
  super(paramString, paramInt, paramString1, null);
 }
 
 public String getGrade(String paramString) {
  return paramString + " Outstanding";
 }
}
//枚舉值B對應(yīng)的枚舉類
enum GradeHandlerEnum$2{
 GradeHandlerEnum$2(String paramString1) {
  super(paramString, paramInt, paramString1, null);
 }
 
 public String getGrade(String paramString) {
  return paramString + " Fail";
 }
}

關(guān)于使用Java怎么實(shí)現(xiàn)一個枚舉類接口就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:使用Java怎么實(shí)現(xiàn)一個枚舉類接口-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article46/djjghg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站設(shè)計手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計品牌網(wǎng)站制作、企業(yè)建站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)