java定義枚舉,java定義枚舉多個值

本文目錄一覽:

java自定義httpstatus枚舉值

由於每個程序員在開始編程時一般會首先學習C/C++,然後再學習Java,在C++中枚舉是可以定義枚舉值為特定的整數的,但這在Java中卻沒有得到支持,大概C/C++中的枚舉代表了數值型常量多一些,而Java中枚舉值,更確切的說為枚舉類型對象。在Java中定義一個簡單的枚舉類如下所示。

java怎麼定義枚舉

在Java中,枚舉(enum)與類(class)、介面(interface)屬於同一個級別。

使用枚舉的Java程序:

public class Main {

public static void main(String[] args) {

Week w = Week.Monday;

System.out.println(w);

}

}

//定義枚舉

enum Week {

Sunday,

Monday,

Tuesday,

Wednesday,

Thursday,

Friday,

Saturday

}

運行測試:

Monday

java枚舉類怎麼寫

枚舉(enum)類型是Java 5新增的特性,它是一種新的類型,允許用常量來表示特定的數據片斷,而且全部都以類型安全的形式來表示。

1、常量的使用

在JDK1.5之前,我們定義常量都是:public static fianl….。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型里,而且枚舉提供了比常量更多的方法。

1234567

package com; public enum Color { RED, GREEN, BLANK, YELLOW }

使用

123456789101112131415161718192021

package com; public class B { public static void main(String[] args) { System.out.println( isRed( Color.BLANK ) ) ; //結果: false System.out.println( isRed( Color.RED ) ) ; //結果: true } static boolean isRed( Color color ){ if ( Color.RED.equals( color )) { return true ; } return false ; } }

或者 switch 的使用

12345678910111213141516171819202122232425

package com; public class B { public static void main(String[] args) { showColor( Color.RED ); } static void showColor(Color color){ switch ( color ) { case BLANK: System.out.println( color ); break; case RED : System.out.println( color ); break; default: System.out.println( color ); break; } }}

2、自定義函數

package com; public enum Color { RED(“紅色”, 1), GREEN(“綠色”, 2), BLANK(“白色”, 3), YELLO(“黃色”, 4); private String name ; private int index ; private Color( String name , int index ){ this.name = name ; this.index = index ; } public 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; } }

使用

package com; public class B { public static void main(String[] args) { //輸出某一枚舉的值 System.out.println( Color.RED.getName() ); System.out.println( Color.RED.getIndex() ); //遍歷所有的枚舉 for( Color color : Color.values()){ System.out.println( color + ” name: ” + color.getName() + ” index: ” + color.getIndex() ); } } }

結果

紅色

1

RED name: 紅色 index: 1

GREEN name: 綠色 index: 2

BLANK name: 白色 index: 3

YELLO name: 黃色 index: 4

總結:

1、枚舉的本質是類,在沒有枚舉之前,仍然可以按照java最基本的編程手段來解決需要用到枚舉的地方。枚舉屏蔽了枚舉值的類型信息,不像在用public static final定義變數必須指定類型。枚舉是用來構建常量數據結構的模板,這個模板可擴展。枚舉的使用增強了程序的健壯性,比如在引用一個不存在的枚舉值的時候,編譯器會報錯。枚舉的更多用法還需要在開發中去研究創造,Java5、Java6增加了不少新的特性,技術在升級,對程序員來說就要學習,如果你熱愛java的話。否則別人用到新特性的代碼你看不懂,那才叫鬱悶。

2、枚舉在Java家族中只佔了很小的一塊比重,所以我在項目中用枚舉的地方不是很多,畢竟,一個項目是很多人開發維護的,用一個陌生的東西,會給其他的同事造成閱讀困難。所以常量大都是用public static final 來定義的。

Java:這裡的枚舉常量是如何定義的呢?

枚舉(從JDK1.5開始有)

用於代表」實例已經固定「的類,而且定義時就必須在【第一行】創建初始化並列出來。

語法格式:

修飾符 enum 枚舉名{

//立即在第一行列出該枚舉的所有實例。

}

—— 修飾符 可以是 public | 省略 | abstract | final。 abstract與final必須出現其中一個。

—— 枚舉的構造器只能用private修飾。

—— 枚舉類的實例必須在第一行顯式的列出。

所有的枚舉都有一個values()方法,返回枚舉實例

switch(byte|short|char|int|String|枚舉)

●有了枚舉之後,它的實例已經創建出來了,只需要用它們就行了。

●枚舉可以有Field,方法,構造器(只能是private修飾),初始化塊,內部類。

列出枚舉值,並不是簡單的定義幾個枚舉值的變數名。

而是調用枚舉類的構造器來創建相應的實例。

定義枚舉的方法時要非常小心,

●包含抽象方法的枚舉類

●枚舉可以實現介面。

A。實現介面,並直接實現所有的抽象方法。

此時枚舉類不再是抽象枚舉了。

B。實現介面,但並不直接實現抽象方法。

此時枚舉類就只能是抽象枚舉類。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249038.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:31
下一篇 2024-12-12 13:31

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • 為什麼Python不能編譯?——從多個方面淺析原因和解決方法

    Python作為很多開發人員、數據科學家和計算機學習者的首選編程語言之一,受到了廣泛關注和應用。但與之伴隨的問題之一是Python不能編譯,這給基於編譯的開發和部署方式帶來不少麻煩…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論