欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java編程枚舉類(lèi)型那些事!枚舉類(lèi)型定義和重寫(xiě)枚舉的方法

 更新時(shí)間:2017年10月23日 15:53:33   作者:i_belive_my_love的博客  
本文主要介紹了枚舉類(lèi)型的有關(guān)內(nèi)容,涉及簡(jiǎn)單的枚舉類(lèi)型定義,以及枚舉類(lèi)型的值在Java中的定義方法,具有一定參考價(jià)值,需要的朋友可以了解下。

什么是枚舉類(lèi)型

枚舉類(lèi)型(Enumerated Type) 很早就出現(xiàn)在編程語(yǔ)言中,它被用來(lái)將一組類(lèi)似的值包含到一種類(lèi)型當(dāng)中。

而這種枚舉類(lèi)型的名稱(chēng)則會(huì)被定義成獨(dú)一無(wú)二的類(lèi)型描述符,在這一點(diǎn)上和常量的定義相似。不過(guò)相比較常量類(lèi)型,枚舉類(lèi)型可以為申明的變量提供更大的取值范圍。

簡(jiǎn)單的枚舉類(lèi)型定義

假如你希望創(chuàng)建一個(gè)顏色庫(kù),你可以這樣定義枚舉類(lèi)型

enum Color {red, green, yellow, black};

然后你就可以使用它

Color T = Color.red;
if (T == Color.red)
  System.out.println("i am red");
switch(T) {
 case red:
   System.out.println("i am red");
   break
}

定制枚舉類(lèi)型

在C/C++中,我們可以這樣使用枚舉變量

enum color {red,green};
enum color a = 1;// a is green

在Java中定義枚舉類(lèi)型的值

enum color {
 red(1),green(2);
 private final int number;
 color(int i) {
  this.number = i;
 }
 public getValue() {
  return this.number;
 }
}

然后使用 T.getValue() 便可獲取綁定的值

重寫(xiě)枚舉的方法

枚舉類(lèi)給我們提供的方法有,具體可以查看Enum.java

name, toString, valueOf //獲取名字
equals //比較
ordinal //獲取位置

實(shí)現(xiàn)接口

所有的枚舉都繼承自java.lang.Enum類(lèi)。

由于Java 不支持多繼承,所以枚舉對(duì)象不能再繼承其他類(lèi),但是可以實(shí)現(xiàn)接口

Test

enum number {
  zero(0),one(1),two(2);
  int n;
  number(int i) {
    this.n = i;
  }
  public int getValue(){
    return this.n;
  }
}
interface People_State {
  String getState();
  State_Enum ChangeState();
}
enum State_Enum implements People_State {
  normal("正常"), stop("停止");
  private final String state;
  State_Enum(String s) {
    this.state = s;
  }
  public String toString() {
    return state;
  }
  @Override
  public String getState() {
    return state;
  }
  @Override
  public State_Enum ChangeState() {
    if (this == normal)
      return stop;
    else
      return normal;
  }
}
public class Test_Enum {
  public static void main(String[] args) {
    number z = number.zero;
    State_Enum state = State_Enum.normal;
    System.out.println(z.getValue());
    System.out.println(z);
    System.out.println(number.one);
    switch (z) {
      case zero:
        System.out.println(0);
        break;
      case one:
        System.out.println(1);
        break;
      case two:
        System.out.println("2");
        break;
    }
    //equals
    if (z.equals(number.one)) {
      System.out.println("equal!");
    } else {
      System.out.println("unequal");
    }
    //valueOf
    System.out.println(number.valueOf("zero"));
    //ordinal
    System.out.println(z.ordinal()); //the index of values
    System.out.println(state.toString());
    state = state.ChangeState();
    System.out.println(state.getState());
  }
}

Output

0
zero
one
0
unequal
zero
0
正常
停止

總結(jié)

以上就是本文關(guān)于java編程枚舉類(lèi)型定義和重寫(xiě)枚舉的方法的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程long數(shù)據(jù)類(lèi)型的使用問(wèn)題java編程基礎(chǔ)之模仿用戶(hù)登錄代碼分享等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • springboot整合x(chóng)xl-job的實(shí)現(xiàn)示例

    springboot整合x(chóng)xl-job的實(shí)現(xiàn)示例

    本文主要介紹了springboot整合x(chóng)xl-job的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java并發(fā)編程示例(十):線程組

    Java并發(fā)編程示例(十):線程組

    這篇文章主要介紹了Java并發(fā)編程示例(十):線程組,Java提供了ThreadGroup類(lèi)來(lái)控制一個(gè)線程組,一個(gè)線程組可以通過(guò)線程對(duì)象來(lái)創(chuàng)建,也可以由其他線程組來(lái)創(chuàng)建,生成一個(gè)樹(shù)形結(jié)構(gòu)的線程,需要的朋友可以參考下
    2014-12-12
  • 使用Java對(duì)Hbase操作總結(jié)及示例代碼

    使用Java對(duì)Hbase操作總結(jié)及示例代碼

    這篇文章主要介紹了使用Java對(duì)Hbase進(jìn)行操作總結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java 實(shí)現(xiàn)倒計(jì)時(shí)功能(由秒計(jì)算天、小時(shí)、分鐘、秒)

    Java 實(shí)現(xiàn)倒計(jì)時(shí)功能(由秒計(jì)算天、小時(shí)、分鐘、秒)

    最近做項(xiàng)目遇到這樣的需求,天、小時(shí)、分鐘、秒的數(shù)值都是隔開(kāi)的,服務(wù)器端只返回一個(gè)時(shí)間戳長(zhǎng)度,怎么實(shí)現(xiàn)這樣的功能呢?下面小編給大家?guī)?lái)了Java 實(shí)現(xiàn)倒計(jì)時(shí)功能的方案,需要的朋友參考下吧
    2018-01-01
  • 被遺忘的Java關(guān)鍵字transient的使用詳解

    被遺忘的Java關(guān)鍵字transient的使用詳解

    在 Java 中,transient 是一個(gè)關(guān)鍵字,用于指定一個(gè)類(lèi)的字段(成員變量)在序列化時(shí)應(yīng)該被忽略。本文將通過(guò)示例為大家簡(jiǎn)單講講transient的使用,需要的可以參考一下
    2023-04-04
  • Java?關(guān)鍵字break和continue的使用說(shuō)明

    Java?關(guān)鍵字break和continue的使用說(shuō)明

    這篇文章主要介紹了Java?關(guān)鍵字break和continue的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Dubbo服務(wù)校驗(yàn)參數(shù)的解決方案

    Dubbo服務(wù)校驗(yàn)參數(shù)的解決方案

    這篇文章主要介紹了Dubbo服務(wù)如何優(yōu)雅的校驗(yàn)參數(shù),Dubbo框架本身是支持參數(shù)校驗(yàn)的,同時(shí)也是基于JSR303去實(shí)現(xiàn)的,今天通過(guò)示例代碼介紹下詳細(xì)實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下
    2022-03-03
  • Spring?boot?整合Logback過(guò)程示例解析

    Spring?boot?整合Logback過(guò)程示例解析

    這篇文章主要為大家介紹了Spring?boot?整合Logback的過(guò)程及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java消息隊(duì)列RabbitMQ入門(mén)詳解

    Java消息隊(duì)列RabbitMQ入門(mén)詳解

    這篇文章主要介紹了Java消息隊(duì)列RabbitMQ入門(mén)詳解,RabbitMQ是使用Erlang語(yǔ)言開(kāi)發(fā)的開(kāi)源消息隊(duì)列系統(tǒng),基于AMQP協(xié)議 來(lái)實(shí)現(xiàn),AMQP的主要特征是面向消息、隊(duì)列、路由(包括點(diǎn)對(duì)點(diǎn)和發(fā)布 /訂閱)、可靠性、安全,需要的朋友可以參考下
    2023-07-07
  • 使用TraceId在Spring Cloud中實(shí)現(xiàn)線上問(wèn)題快速定位

    使用TraceId在Spring Cloud中實(shí)現(xiàn)線上問(wèn)題快速定位

    在微服務(wù)架構(gòu)中,服務(wù)間的互相調(diào)用使得問(wèn)題定位變得復(fù)雜,在此背景下,TraceId為我們提供了一個(gè)在復(fù)雜環(huán)境中追蹤請(qǐng)求路徑和定位問(wèn)題的工具,本文不僅介紹TraceId的基本概念,還將結(jié)合真實(shí)場(chǎng)景,為您展示如何在Spring Cloud中應(yīng)用它
    2023-09-09

最新評(píng)論