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

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

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

枚舉

自定義枚舉類

創(chuàng)建方法

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

注意事項

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

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

創(chuàng)建步驟

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

image-20210611130036924

注意事項

使用enum關(guān)鍵字后就不能繼承其他類了,因為enum會隱式繼承Enum類,而java是單繼承

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

enum 類名 implements 接口1,接口2{}

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

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:返回當前對象名,子類可以重寫
  • name:返回當前對象名(常量名),子類中不能重寫
  • ordinal:返回當前對象的位置號,默認從0開始
  • values:返回一個數(shù)組,包含當前枚舉類的所有常量
  • valueOf:將字符串轉(zhuǎn)換成枚舉對象,要求字符串為已有的常量名,否則報異常
  • comparaTo:比較兩個枚舉常量,比較的就是位置號

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

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;
    }
}

注解

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

@override

用于限定某個方法,是重寫父類方法,該注解只能用于方法

如果寫了@override,編譯器會檢查該方法是否真的重寫了父類的方法;相當于提醒編譯器校驗

如果沒寫,如果父類有對應(yīng)方法,一樣的構(gòu)成重寫

image-20210611231906304

@Deprecated

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

@SuppressWarnings

  • 抑制編譯器警告
  • 不希望看到警告時,可以用這個注解來抑制編 譯器

image-20210611232547481

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

元注解(了解)

  • @Retention:用于修飾一個注解,指定該注解可以保留多長時間

image-20210611234142958

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    詳解配置類為什么要添加@Configuration注解

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

    springboot themaleaf 第一次進頁面不加載css的問題

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

    Java中csv文件讀寫超詳細分析

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

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

    這篇文章主要介紹了Java實現(xiàn)Kafka生產(chǎn)者和消費者的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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é)合實例形式分析了java稀疏矩陣的定義、運算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java如何判斷字符串中是否包含某個字符

    Java如何判斷字符串中是否包含某個字符

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

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

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

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

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

最新評論