日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java基礎之枚舉Enum類案例詳解

瀏覽:193日期:2022-08-13 10:59:16
一、文章序言

Java中引用類型:數組、類、接口、枚舉、注解

枚舉這個既熟悉又陌生的東西具體再哪里可以使用呢?

Java基礎之枚舉Enum類案例詳解

什么是枚舉?

枚舉是一個引用類型,枚舉就是一個規定了取值范圍的變量類型。

枚舉變量不能使用其他的數據,只能使用枚舉中常量賦值。提高程序安全性;

//格式: public enum 枚舉名{ //枚舉的取值范圍 //枚舉中可以生命方法 }

枚舉的使用場景介紹?

1、最常見的情況如星期,相關變量我們會在Java里面重復使用,在這里我們就可以來定義一個叫做“星期”的枚舉。

public enum Day{ SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY}

如果不定義成枚舉,各位的寫法就千奇百怪了,比如“周一”、“星期一”、“Monday”等,寫法千奇百怪,定義枚舉一目了然。

2、比如說季節的春夏秋冬,我們同樣可以定義一個這樣的變量來存儲對應的季節。

public enum Season { SPRING, SUMMER, AUTUMN, WINTER;}

3、英雄聯盟里面,有很多職業,比如說”戰士“、”法師“、”射手“……等職業。我們就可以定義一個叫”職業“的枚舉類型;后臺再其它地方哪里需要直接引用即可;

總結:枚舉里面定義的就相當于是已經生成且固定的對象,你可以直接使用;如果Java代碼里面與如上需要定義的常量可以直接定義一個枚舉類;

Java基礎之枚舉Enum類案例詳解

定義枚舉類型時本質上就是定義一個類別,只不過很多細節由編譯器幫我們完成了,所以某些程度上,enum關鍵字的作用 就像是class或interface

1 枚舉的本質:其實就是終止類,并繼承Enum抽象類。

2 枚舉中的變量,其實就是一個當前類型的靜態常量。

解釋:

當我們使用“enum”定義枚舉類型時,實質上我們定義出來的類型繼承自java.lang.Enum類型,而枚舉的成員其實就是我們定義的枚舉類型的一 個實例(Instance),他們都被預設為final,所以我們無法改變他們,他們也是static成員,所以我們可以通過類型名稱直接使用他們,當然最重要的,他們都是公開的(public)。

二、代碼實踐

先定義一個枚舉:季節枚舉

//聲明一個表示季節的枚舉public enum Season { SPRING, SUMMER, AUTUMN, WINTER;}

枚舉可以搭配switch語句使用:案例如下

public class TestSeasonEnum { public static void main(String[] args) {Season season = Season.SPRING;//switch小括號中的表達式類型可以是枚舉類型switch(season){ //每個case后的常量直接寫枚舉的取值范case SPRING: System.out.println('春天'); break;case SUMMER: System.out.println('夏天'); break;case AUTUMN: System.out.println('秋天'); break;case WINTER: System.out.println('冬天'); break;} }}

輸出結果

春天

為了加深理解,再舉例一個錯誤的用法

​ An enum switch case label must be the unqualified name of an enumeration constantJava基礎之枚舉Enum類案例詳解

注意,在switch中,不能使用枚舉類名稱,因為編譯器會根據switch()的類型來判定每個枚舉類型,在case中必須直接給出與()相同類型的枚舉選項,而不能再有類型。

Java基礎之枚舉Enum類案例詳解

代碼如上可以直接測試,建議實測

三、面試相關

來來來,剛好抽時間一起整理一下常見面試問題吧,然后相關解析已經附上詳細代碼學習,實踐實踐再實踐!

Java基礎之枚舉Enum類案例詳解

1.枚舉允許繼承類嗎?

枚舉類使用enum定義后在編譯后默認繼承了java.lang.Enum類,而不是普通的繼承Object類。enum聲明類繼承了Serializable和Comparable兩個接口。且采用enum聲明后,該類會被編譯器加上final聲明(同String),故該類是無法繼承的。

所有枚舉類都默認是Enum類的子類,無需我們使用extends來繼承。

2.枚舉允許實現接口嗎?

枚舉允許實現接口。因為枚舉本身就是一個類,類是可以實現多個接口的。

public interface EnumInterface { public abstract void print();}

public enum SizeEnum implements EnumInterface{ BIG,MIDDLE,SMALL; @Override public void print() {System.out.println('繼承接口-重寫方法一次'); }}

3.枚舉可以用等號比較嗎?

肯定,因為在Enum類里面,已經重寫了equals方法,而方法里面比較就是直接使用==,來比較2個對象的。所以,你在外邊直接使用==也是可以的。

Java基礎之枚舉Enum類案例詳解

4.可以繼承枚舉嗎?

當然不能呀,枚舉類默認繼承了java.lang.Enum類,一個類怎么能繼承兩個類呢?

5.枚舉可以實現單例模式嗎?

枚舉本身就是一種對單例設計模式友好的形式,它是實現單例模式的一種很好的方式。

public class InstanceDemo { /** * 構造方法私有化 */ private InstanceDemo(){ } /** * 返回實例 * @return */ public static InstanceDemo getInstance() {return Singleton.INSTANCE.getInstance(); } /** * 使用枚舉方法實現單利模式 */ private enum Singleton {INSTANCE;private InstanceDemo instance;/** * JVM保證這個方法絕對只調用一次 */Singleton() { instance = new InstanceDemo();}public InstanceDemo getInstance() { return instance;} }//測試一下 public static void main(String[] args) {InstanceDemo one = InstanceDemo.getInstance();InstanceDemo two = InstanceDemo.getInstance();System.out.println(one);System.out.println(two);System.out.println(one == two); }}

創建的對象相同

csdn.test.recursion.demo.InstanceDemo@74a14482csdn.test.recursion.demo.InstanceDemo@74a14482true

6.當使用compareTo()比較枚舉時,比較的是什么?

int compareTo(E e):比較兩個枚舉常量誰大誰小,其實比較的就是枚舉常量在枚舉類中聲明的順序;返回值可以仔細看看源碼;

一起看看,底層代碼吧

public final int compareTo(E o) {Enum<?> other = (Enum<?>)o;Enum<E> self = this;if (self.getClass() != other.getClass() && // optimization self.getDeclaringClass() != other.getDeclaringClass()) throw new ClassCastException();return self.ordinal - other.ordinal; }

舉個例子你就能理解了

public class TestSeasonEnum { public static void main(String[] args) { Season season = Season.SPRING;Season season1 = Season.SUMMER;Season season2 = Season.AUTUMN;Season season3 = Season.WINTER;System.out.println(season.compareTo(season1));System.out.println(season.compareTo(season2));System.out.println(season.compareTo(season3)); }}

輸出結課,詳情參考源碼一看便知道

-1-2-3

7. 當使用equals()比較枚舉的時候,比較的是什么?

枚舉類型的equals()方法比較的是枚舉類對象的內存地址,作用與等號等價。

到此這篇關于Java基礎之枚舉Enum類案例詳解的文章就介紹到這了,更多相關Java枚舉Enum類內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
婷婷亚洲综合| 99久久夜色精品国产亚洲狼 | 日本一区二区高清不卡| 欧美激情麻豆| 国内一区二区三区| 黑人精品一区| 国产精品99一区二区| 日韩午夜电影| 国产亚洲亚洲| 捆绑调教日本一区二区三区| 中国字幕a在线看韩国电影| 欧美日韩免费观看视频| 欧美日韩中文一区二区| 亚洲视频播放| 青青草91视频| 色欧美自拍视频| 久久一区二区三区喷水| 日韩中文字幕不卡| 久久精品 人人爱| 国产一区二区三区探花| 久久精品在线| 亚洲欧美高清| 日韩二区在线观看| 国产成人精品亚洲线观看| 日韩欧美国产精品综合嫩v| 亚洲午夜视频| 蜜桃91丨九色丨蝌蚪91桃色| 日产欧产美韩系列久久99| 国产精品欧美在线观看| 麻豆视频在线看| 中日韩男男gay无套| 日韩国产精品久久久久久亚洲| 久久av导航| 亚洲va在线| 免费亚洲婷婷| 欧美精品一二| 日韩av中文字幕一区二区| 国产 日韩 欧美 综合 一区| 亚洲一级影院| 日韩**一区毛片| 成人国产综合| 老鸭窝毛片一区二区三区| 久久国内精品视频| 日韩在线第七页| 日韩一区精品视频| 欧美激情网址| 国产手机视频一区二区| 欧美激情日韩| 久久国产精品久久久久久电车| 久久99蜜桃| 99热精品在线| 精品福利久久久| 亚洲综合五月| 日韩大片在线播放| 日韩精品视频在线看| 国产成人77亚洲精品www| 香蕉成人久久| 91视频一区| 日产欧产美韩系列久久99| 久久婷婷一区| 国产精品一区二区三区四区在线观看 | 中文字幕在线官网| 蜜桃av一区二区| 久久影院午夜精品| 日韩激情啪啪| 在线成人直播| 国产精品香蕉| 美女被久久久| 丝袜美腿诱惑一区二区三区| 日韩和欧美一区二区三区| 久久三级福利| 久久久国产精品入口麻豆| 久久亚洲风情| 伊人久久大香线蕉av不卡| 国产精品chinese| 日韩中文字幕av电影| 秋霞影院一区二区三区| 国产精品欧美大片| 国产婷婷精品| 久久九九99| 精品视频一区二区三区四区五区 | 四虎成人精品一区二区免费网站| 亚洲三级欧美| 国产精品地址| 日韩欧美激情电影| 91久久在线| 欧美日韩免费看片| 国产欧美69| 日本v片在线高清不卡在线观看| 五月天激情综合网| 免费一二一二在线视频| 国产精品亚洲欧美日韩一区在线| 中日韩男男gay无套| 日韩在线观看一区| 国产精品成久久久久| 日韩精品a在线观看91| 夜夜嗨一区二区| 激情综合在线| 天堂资源在线亚洲| 日韩精品一区二区三区免费观看| 精品国产麻豆| 卡一卡二国产精品| 国产剧情一区二区在线观看| 亚洲不卡视频| 免费在线欧美视频| 欧美在线亚洲综合一区| 麻豆成全视频免费观看在线看| 国产精品最新| 国产日本精品| 久久国产免费看| 欧美在线首页| 国产亚洲欧美日韩在线观看一区二区| 亚洲专区视频| 亚洲精选成人| 日本不卡高清| 日韩av中文字幕一区| 日韩av中文字幕一区二区| 亚洲精品美女91| 亚洲人成网站在线在线观看| 老司机精品久久| 免播放器亚洲| 蜜臀久久久99精品久久久久久| 野花国产精品入口| 国产精品呻吟| 蜜桃视频第一区免费观看| 蜜臀久久久99精品久久久久久| 久久亚洲色图| 婷婷综合国产| 91欧美精品| 久久久亚洲欧洲日产| 精品国产91| 久久久国产精品一区二区中文| 欧美一级精品| 欧美专区在线| 日韩高清一区| 国产亚洲一区二区三区不卡| 欧美日韩一区二区三区在线电影| 7m精品国产导航在线| 欧美激情99| 欧美国产小视频| 欧美69视频| 亚洲丝袜美腿一区| 国产精品调教| 97欧美在线视频| 欧美+亚洲+精品+三区| 日韩精品一级中文字幕精品视频免费观看| 亚洲欧洲免费| 久久不见久久见免费视频7 | 亚洲日本免费电影| 91亚洲精品在看在线观看高清| 欧美aaaaaa午夜精品| 日韩一区二区三区免费播放| 自拍日韩欧美| 69精品国产久热在线观看| 麻豆精品视频在线| 日韩电影免费在线观看| 麻豆精品91| 国产精品www.| 国产精品福利在线观看播放| 精品一区欧美| 日韩中文字幕无砖| 精品国产麻豆| 黄色免费成人| 欧美性www| 麻豆视频在线观看免费网站黄| 91久久黄色| 欧美激情久久久久久久久久久| 欧美色图一区| 日韩高清一区在线| 日韩欧美精品综合| 中文字幕一区二区精品区| 久久亚洲黄色| 久久高清国产| 福利一区二区三区视频在线观看| 国产农村妇女精品一二区| 国产欧美日韩精品高清二区综合区 | 久久精品高清| 奇米亚洲欧美| 亚洲精品一二三**| 天堂va在线高清一区| 欧美精品97| 美女网站一区| 亚洲欧美在线综合| 肉色欧美久久久久久久免费看| 99综合视频| 国产精品对白| 亚洲一区二区免费看| 精品一区二区三区亚洲 | 天堂成人免费av电影一区| 国产乱子精品一区二区在线观看| 999国产精品永久免费视频app| 欧美一区成人| 日韩亚洲在线| 欧美激情麻豆| 久热精品在线| 色网在线免费观看| 国产亚洲久久| 99亚洲精品| 中文字幕在线看片| 国产欧美一区二区色老头|