久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

怎樣解析Java枚舉類接口實(shí)例原理

本篇文章為大家展示了怎樣解析Java枚舉類接口實(shí)例原理,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計(jì),忻州網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:忻州等地區(qū)。忻州做網(wǎng)站價(jià)格咨詢:028-86922220

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

如果需要每個(gè)枚舉值在調(diào)用同一個(gè)方法時(shí)呈現(xiàn)不同的行為,則可以讓每個(gè)枚舉值在{...}匿名塊中實(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兩個(gè)等級,執(zhí)行結(jié)果如下:

Lucy OutstandingTom Fail

反編譯枚舉類

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

IGradeHandler.classGradeHandlerEnum.classGradeHandlerEnum$1.classGradeHandlerEnum$2.class

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

import java.io.PrintStream;public enum GradeHandlerEnum implements IGradeHandler {// 編譯后生成兩個(gè)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"; }}

上述內(nèi)容就是怎樣解析Java枚舉類接口實(shí)例原理,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:怎樣解析Java枚舉類接口實(shí)例原理
標(biāo)題URL:http://sd-ha.com/article22/pepejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序App開發(fā)、關(guān)鍵詞優(yōu)化、域名注冊、響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

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

網(wǎng)站優(yōu)化排名