1. 程式人生 > >Java高階特性之列舉(二)

Java高階特性之列舉(二)

01.Enum不可以有public或者protected的構造方法,只能是private或friendly(就前面不用修飾符),這樣可以保證客戶程式碼不能新建一個Enum的例項,我們也不需要例項化Enum物件。
   Enum定義的列表成員跟介面一樣都是public,static,final的,每一個的列表成員都是一個物件,該物件是由上面提到的構造方法構造的。構造方法的引數列表很重要。
   如:
  public enum MyEnum {
RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);  //每一個成員都是一個MyEnum物件
private String name;     
private int index; 
MyEnum(String name,int index){
this.name = name;          
this.index = index; 
}
public int getindex(){   
return index;
}
public String getName(){
return name;
}
public String toString(){
return name;
}
}




02.Enum的列舉值都是public static final(非列舉值可以不是)  


03.Enum預設實現了java.lang.Comparable介面  


04.Enum重寫了toString() 


05.Enum提供valueOf(),這個方法與toString相對應,因此重寫toString(),一定要重寫valueOf() 


//我們可以重寫toString(),不可以自己重寫valueOf(),當我們重寫toString()方法時,valueOf()會自動重寫,不用我們理會。


也可以單獨針對某個列舉值(物件)重寫toString()方法,如:


public enum Week {  
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, STR {  
        public String toString() {  
            return "輸入引數有誤,引數值範圍在0~6";  
        }  
    };  


 
06.Enum提供values()可以遍歷列舉值  返回的就像ArrayList<MyEnum>的物件,然後我們可以這樣遍歷每個列舉值
for(MyEnum m : MyEnum.values()){
System.out.println(m);
}


07.Enum的長度values().length  


08.Enum提供oridinal()可以返回列舉值順序  



相關推薦

Java高階特性列舉

01.Enum不可以有public或者protected的構造方法,只能是private或friendly(就前面不用修飾符),這樣可以保證客戶程式碼不能新建一個Enum的例項,我們也不需要例項化Enum物件。    Enum定義的列表成員跟介面一樣都是public,sta

JAVA面向物件高階特性繼承1常見問題解答

1、什麼是繼承? 答:如果說A是一個B,則我們說A繼承自B。通過繼承來實現程式碼的複用。 2、Java中如何實現繼承?  答:Java類通過extends關鍵字實現繼承,所有的類都間接或者直接繼承自Object類。 3、Java中,有繼承關係時,變數隱藏的原則?  答:子類

dotNet程序員的Java爬坑

模式 最好的 https servlet 很多 過濾器 () 被調用 回調   囉裏囉唆的寫了一大堆,最後還是全刪除了。哎~   言歸正傳,最近因爲發生了很多事情,所以更新的有嗲晚了,最近也一直在學習,但是感覺效率什麼的不是很高,這是不對的,反思一下,從這篇博文開始,打起精

Java整合Sentry配置

10、Event Sampling Sentry可以配置為使用sample.rate選項對事件進行取樣: sample.rate=0.75 此選項採用0.0到1.0之間的數字,表示允許通過伺服器的事件百分比(從0%到100%)。預設情況下,所有事件都將傳送到Sentry

Java架構師

夜光序言: 裝逼是什麼,就是看見野花不摘,欣賞;什麼是衝動,就是見花就摘,然後沒地擱;男人是什麼,那是眼睛裡根本就沒有野花,全是果~         正文:Java企業級高併發  

java集合學習List隨機訪問RandomAccess介面和ArrayList和LinkedList遍歷效能問題

ArrayList這個類是實現了RandomAccess介面的,RandomAccess介面和Serializable介面一樣都是沒有方法或者欄位的,像是一個標誌,RandomAccess介面文件說明的是:Marker interface used by <tt>

java學習筆記webservice--WSDL文件及用myeclipse測試webservice

 >>接上篇 一、WSDL 定義:web services description language,用來描述web服務的xml格式的資訊。 標籤的解釋 1. <types>:定義了服務的namespace和關鍵資訊的型別(方法的引數型別和返回值的

【Python】高階特性切片slice

    在瞭解什麼是切片之前,先考慮一個問題:給定一個字串或者陣列,在Python中如何取其中的一部分資料。比如說我們要取前五個數或者前五個字元。在C++或者Java中底層都封裝了很好的庫函式給我們直接呼叫,比如Java中有subString,那麼在Python中,我們首先

Java面向對象編程繼承

抽象方法 oid 修飾 屬於 ... 方法的參數 要求 ring 覆蓋 在上一篇博客中,我們已經了解繼承的基本概念和語法,那麽今天我們就來聊一聊有關於繼承的其他東西。 讓我們來了解一下什麽是方法重載(overload)和方法覆蓋(override) 方法重載(overloa

Java學習流程控制語句

循環 cas 學習之路 將不 乘法表 length 跳出循環 spa int if、if…else…語句 if (true) { System.out.println("為真時執行");

java集合類源碼分析List

頻繁 null 並且 reel closed tco 默認 java集合 進行 這一節主要介紹List接口的幾個實現類的區別: 1.線程安全 Vector是線程安全的,而ArrayList和LinkedList是非線程安全的。從源碼中我們可知,Vector類中的方法大部分

Java框架Struts2

war cit post extend bst edi 關系 執行 erp 一、Action 配置說明 //請求的直接轉發 <package name="packageUser" namespace="" extends="struts-default">

學習淺談:bash及其特性,命令歷史以及用戶管理及權限,shell的類型

bash 管理權限 過了一周了,進度似乎有點懈怠,不過過了周末重整旗鼓啦shell(外殼)GUI:Gnome,KDE,xfceCLI:sh,csh,ksh,bashbash(父進程)-----bash(子進程)他們相互獨立彼此不知命令歷史:historybash支持的引號:‘ ’命令替換(鍵盤~的按鍵

python 歷險記面向物件——一個 Java 程式設計師的告白

前言 在上篇文章 中,我使用了與 java類比 以及 程式碼例項 的方式涉及了 python 3 中 string, 資料結構(Dict, List, 元組)等重要的主題。 今天我會繼續探險,去征服 python 3 中的面向物件, let's go 讓我們出發吧! 類和物件 剛接觸 python 中的類和物

java框架spring

注入物件(本例是接著上一個繼續進行) 在上例中,對Category的name屬性注入了"花季歲月"字串  在本例中 ,對Product物件,注入一個Category物件 1、首先新建一個類Product.java package com.hjsy.pojo; publ

Java專家---資料訪問和資料持久化框架的總結

Java資料訪問和持久化(SQL) 方案一:JDBC 什麼是JDBC? Java語言訪問資料庫的一種規範,是一套API。JDBC (Java Database Connectivity) API,即Java資料庫程式設計介面,是一組標準的Ja

PyQt5高階介面控制元件QLIstView

QListView 前言 QlistView類用於展示資料,它的子類是QListWIdget。QListView是基於模型(Model)的,需要程式來建立模型,然後再儲存資料 QLi

java中的分散式應用各類中介軟體中用到的演算法

    為了便於區分分散式系統中用到的各類中介軟體所使用的演算法,這裡記錄了他們的核心演算法,但由於個人能力有限,不涉及演算法實現,有關演算法實現請大家另尋他路,這裡只記錄中介軟體核心演算法以及簡單介

ElasticSearch6.X版本Java Api中文詳解Index Api解析

Inde API允許將型別化JSON文件索引到特定索引中,並使其可搜尋。生成JSON文件有幾種不同的方法:1.手動(也就是自己使用)使用本機位元組[]或作為字串。2.使用將自動轉換為其JSON等效的對映

RabbitMQ學習Java客戶端連線測試

前面花了幾天糾結完RabbitMQ在Linux下的安裝之後,開始找簡單的例子來測試RabbitMQ和Java的連線。 和前面的安裝一樣,問題依舊。因為網上的帖子大多數都是很正常的步驟,並且沒有貼出來自己途中可能遇到的低階錯誤。 本文將沿用網上很經典的一個帖子來說出我過程中出