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

Java枚舉與注解的創(chuàng)建步驟

 更新時(shí)間:2021年06月23日 10:30:52   作者:DTFT_W  
這篇文章通過(guò)抽象的概念和具體實(shí)現(xiàn)步驟,充分說(shuō)明了java枚舉與注解的概念和使用方法,通過(guò)該篇文章你可以學(xué)會(huì)如何自定義枚舉類(lèi)和了解部分Java內(nèi)置注解,希望對(duì)你有所幫助

枚舉

自定義枚舉類(lèi)

創(chuàng)建方法

  1. 將構(gòu)造器私有化,防止直接new
  2. 去掉setXXX方法,防止屬性直接被修改
  3. 在類(lèi)的內(nèi)部,直接創(chuàng)建固定的對(duì)象
  4. 優(yōu)化:在創(chuàng)建對(duì)象時(shí)添加final修飾,類(lèi)就不會(huì)被加載

注意事項(xiàng)

  • 對(duì)枚舉對(duì)象/屬性使用final+static共同修飾,實(shí)現(xiàn)底層優(yōu)化
  • 枚舉對(duì)象名通常使用全部大寫(xiě)
  • 枚舉對(duì)象根據(jù)需要,也可以有多個(gè)屬性

關(guān)鍵字Enum枚舉類(lèi)

創(chuàng)建步驟

  1. 使用關(guān)鍵字enum替代class
  2. public static final Season SPRING = new Season("春天","溫暖");直接使用SPRING("春天","溫暖"):常量名(實(shí)參列表)
  3. 如果使用無(wú)參構(gòu)造器創(chuàng)建枚舉對(duì)象,則實(shí)參列表和小括號(hào)都可以省略
  4. 如果有多個(gè)常量(對(duì)象),使用,間隔,最后一個(gè)用分號(hào);
  5. 如果使用enum來(lái)實(shí)現(xiàn)枚舉類(lèi),要求將定義的常量對(duì)象,必須寫(xiě)在類(lèi)的行首

image-20210611130036924

注意事項(xiàng)

使用enum關(guān)鍵字后就不能繼承其他類(lèi)了,因?yàn)閑num會(huì)隱式繼承Enum類(lèi),而java是單繼承

枚舉類(lèi) 和普通類(lèi)一樣,可以實(shí)現(xiàn)接口

enum 類(lèi)名 implements 接口1,接口2{}

**個(gè)人理解:**枚舉類(lèi)就是一個(gè)類(lèi),里面的枚舉對(duì)象就是創(chuàng)建好的對(duì)象放在里面

public class test {
  public static void main(String[] args) {
   Color color = Color.RED;
   switch (color){
       case RED:
           color.show();
           break;
       case BLUE:
           color.show();
           break;
       default:
           break;
   }
  }
}

public interface Show {
    public void show();
}
public enum Color implements Show{
    RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(255,255,0),GREEN(0,255,0);

    private int redValue;
    private int greenValue;
    private int blueValue;

     Color(int redValue,int greenValue,int blueValue){
         this.redValue = redValue;
         this.greenValue = greenValue;
         this.blueValue = blueValue;
    }

    @Override
    public void show(){
  System.out.println("red:"+this.redValue+",green:"+this.greenValue+",blue:"+this.blueValue);
    }
}

Enum成員方法

  • toString:返回當(dāng)前對(duì)象名,子類(lèi)可以重寫(xiě)
  • name:返回當(dāng)前對(duì)象名(常量名),子類(lèi)中不能重寫(xiě)
  • ordinal:返回當(dāng)前對(duì)象的位置號(hào),默認(rèn)從0開(kāi)始
  • values:返回一個(gè)數(shù)組,包含當(dāng)前枚舉類(lèi)的所有常量
  • valueOf:將字符串轉(zhuǎn)換成枚舉對(duì)象,要求字符串為已有的常量名,否則報(bào)異常
  • comparaTo:比較兩個(gè)枚舉常量,比較的就是位置號(hào)

例:創(chuàng)建一個(gè)枚舉類(lèi)并打印其中的常量對(duì)象

public class EnumExercise {
  public static void main(String[] args) {
    System.out.println("=====遍歷枚舉=======");
    Week[] weeks = Week.values();
    for (Week week :weeks){
      System.out.println(week);
    }
  }
}

enum Week{

    Monday("星期一"),Tuesday("星期二"),Wednesday("星期三"),Thursday("星期四");
    private String name;

    private Week(String name) {
        this.name = name;
    }
    @Override
    public String toString(){
        return name;
    }
}

注解

  • 用于修飾解釋、包、類(lèi)、方法、屬性、構(gòu)造器、局部變量等數(shù)據(jù)信息
  • 注解不影響程序邏輯,但注解可以編譯或運(yùn)行,相當(dāng)于嵌套在代碼中的補(bǔ)充信息
  • 在java SE 中,注解使用目的比較簡(jiǎn)單,例如標(biāo)記過(guò)時(shí)的功能、忽略警告等;在java EE 中,用來(lái)配置應(yīng)用程序的任何切面,代替java EE 舊版本中所遺留的繁冗代碼和xml配置等

@override

用于限定某個(gè)方法,是重寫(xiě)父類(lèi)方法,該注解只能用于方法

如果寫(xiě)了@override,編譯器會(huì)檢查該方法是否真的重寫(xiě)了父類(lèi)的方法;相當(dāng)于提醒編譯器校驗(yàn)

如果沒(méi)寫(xiě),如果父類(lèi)有對(duì)應(yīng)方法,一樣的構(gòu)成重寫(xiě)

image-20210611231906304

@Deprecated

  • 用于表示某個(gè)程序元素(類(lèi)、方法)已過(guò)時(shí)
  • 可以修飾類(lèi)、方法、包、字段、參數(shù)
  • 用作版本升級(jí)過(guò)度時(shí)使用

@SuppressWarnings

  • 抑制編譯器警告
  • 不希望看到警告時(shí),可以用這個(gè)注解來(lái)抑制編 譯器

image-20210611232547481

  • 作用范圍:和放置的位置有關(guān)

元注解(了解)

  • @Retention:用于修飾一個(gè)注解,指定該注解可以保留多長(zhǎng)時(shí)間

image-20210611234142958

  • @Target:用于修飾一個(gè)注解,指定被修飾的注解能修飾哪些元素;target包含一個(gè)value的成員變量
  • @Documented:用于指定被修飾的注解類(lèi)將被javadoc工具提取成文檔
  • @Inherited:子類(lèi)會(huì)繼承被這個(gè)注解修飾的注解

總結(jié)

到此這篇關(guān)于Java的枚舉與注解的文章就介紹到這了,更多相關(guān)枚舉與注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Java實(shí)現(xiàn)紅黑樹(shù)

    利用Java實(shí)現(xiàn)紅黑樹(shù)

    紅黑樹(shù)是眾多“平衡的”搜索樹(shù)模式中的一種,在最壞情況下,它相關(guān)操作的時(shí)間復(fù)雜度為O(log n),接下倆小編將子啊下文詳細(xì)介紹Java是如何實(shí)現(xiàn)紅黑樹(shù)的
    2021-09-09
  • Java中java.lang.ClassCastException異常原因以及解決方法詳解

    Java中java.lang.ClassCastException異常原因以及解決方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中java.lang.ClassCastException異常原因以及解決方法的相關(guān)資料,ClassCastException從字面上看是類(lèi)型轉(zhuǎn)換錯(cuò)誤,通常是進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí)候出的錯(cuò)誤,需要的朋友可以參考下
    2024-02-02
  • 詳解配置類(lèi)為什么要添加@Configuration注解

    詳解配置類(lèi)為什么要添加@Configuration注解

    這篇文章主要介紹了詳解配置類(lèi)為什么要添加@Configuration注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • springboot themaleaf 第一次進(jìn)頁(yè)面不加載css的問(wèn)題

    springboot themaleaf 第一次進(jìn)頁(yè)面不加載css的問(wèn)題

    這篇文章主要介紹了springboot themaleaf 第一次進(jìn)頁(yè)面不加載css的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java中csv文件讀寫(xiě)超詳細(xì)分析

    Java中csv文件讀寫(xiě)超詳細(xì)分析

    CSV是一種通用的、相對(duì)簡(jiǎn)單的文件格式,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中csv文件讀寫(xiě)分析的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)Kafka生產(chǎn)者和消費(fèi)者的示例

    Java實(shí)現(xiàn)Kafka生產(chǎn)者和消費(fèi)者的示例

    這篇文章主要介紹了Java實(shí)現(xiàn)Kafka生產(chǎn)者和消費(fèi)者的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java數(shù)據(jù)結(jié)構(gòu)之稀疏矩陣定義與用法示例

    Java數(shù)據(jù)結(jié)構(gòu)之稀疏矩陣定義與用法示例

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之稀疏矩陣定義與用法,結(jié)合實(shí)例形式分析了java稀疏矩陣的定義、運(yùn)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java如何判斷字符串中是否包含某個(gè)字符

    Java如何判斷字符串中是否包含某個(gè)字符

    這篇文章主要介紹了Java如何判斷字符串中是否包含某個(gè)字符,可以使用String類(lèi)的contains()方法,另一種方法使用String類(lèi)的indexOf方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • SpringBoot 中大文件(分片上傳)斷點(diǎn)續(xù)傳與極速秒傳功能的實(shí)現(xiàn)

    SpringBoot 中大文件(分片上傳)斷點(diǎn)續(xù)傳與極速秒傳功能的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot 中大文件(分片上傳)斷點(diǎn)續(xù)傳與極速秒傳功能的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot接收各種各樣參數(shù)的示例詳解

    SpringBoot接收各種各樣參數(shù)的示例詳解

    參數(shù)映射準(zhǔn)確來(lái)說(shuō)是springmvc來(lái)幫我們干的活,但是由于springboot太過(guò)火爆,簡(jiǎn)化了springmvc相關(guān)配置文件,以至于很多人會(huì)誤認(rèn)為是springboot的功能,本文將給大家介紹SpringBoot接收各種各樣參數(shù),文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2024-04-04

最新評(píng)論