国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

網(wǎng)站建設遠程工作搜索引擎優(yōu)化方案

網(wǎng)站建設遠程工作,搜索引擎優(yōu)化方案,wordpress媒體庫注冊,重慶建筑公司100強第八章:枚舉類與注解 8.1:枚舉類的使用 ? 類的對象只有有限個,確定的。我們稱此類為枚舉類。當需要定義一組常量是,強烈建議使用枚舉類。如果枚舉類中只有一個對象,則可以作為單例模式的實現(xiàn)方式。 如何定義枚舉類 …

第八章:枚舉類與注解

8.1:枚舉類的使用

? 類的對象只有有限個確定的。我們稱此類為枚舉類。當需要定義一組常量是,強烈建議使用枚舉類。如果枚舉類中只有一個對象,則可以作為單例模式的實現(xiàn)方式。

  1. 如何定義枚舉類

    • 方式一:JDK5.0之前,自定義枚舉類。

      public class SeasonTest {public static void main(String[] args) {Season spring = Season.SPRING;System.out.println(spring); // Season{seasonName=春天,seasonDesc=春暖花開}}
      }
      //自定義枚舉類
      class Season{//1.聲明Season對象的屬性:private final修飾private final String seasonName;private final String seasonDesc;//2.私有化類的構(gòu)造器,并給對象屬性賦值private Season(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//3.提供當前枚舉類的多個對象:public static final的public static final Season SPRING = new Season("春天","春暖花開");public static final Season SUMMER = new Season("夏天","夏日炎炎");public static final Season AUTUMN = new Season("秋天","秋高氣爽");public static final Season WINTER = new Season("冬天","冰天雪地");//4.其他訴求1:獲取枚舉類對象的屬性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他訴求1:提供toString()@Overridepublic String toString() {return "Season{" +"seasonName='" + seasonName + '\'' +", seasonDesc='" + seasonDesc + '\'' +'}';}
      }
      
    • 方式二:JDK5.0,可以使用enum關(guān)鍵字定義枚舉類。

      public class SeasonTest1 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;System.out.println(summer); // Season{seasonName=春天,seasonDesc=春暖花開}System.out.println(Season1.class.getSuperclass()); // Enum}
      }
      //使用enum關(guān)鍵字枚舉類
      enum Season1 implements Info{//1.提供當前枚舉類的對象,多個對象之間用","隔開,末尾對象";"結(jié)束SPRING("春天","春暖花開"),SUMMER("夏天","夏日炎炎"),AUTUMN("秋天","秋高氣爽"),WINTER("冬天","冰天雪地");//2.聲明Season對象的屬性:private final修飾private final String seasonName;private final String seasonDesc;//2.私有化類的構(gòu)造器,并給對象屬性賦值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他訴求1:獲取枚舉類對象的屬性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他訴求1:提供toString()@Overridepublic String toString() {return "Season1{" +"seasonName='" + seasonName + '\'' +", seasonDesc='" + seasonDesc + '\'' +'}';}
      }
      
  2. Enum類中常用的方法

    • values():返回枚舉類型的對象數(shù)組。該方法可以很方便地遍歷所有的枚舉值。
    • valueOf(String str):返回枚舉類中對象名str的對象,如果沒有就拋異常。
    • toString():返回當前枚舉類對象常量名稱。
    Season1 summer = Season1.SUMMER;
    //toString():返回枚舉類對象的名稱
    System.out.println(summer.toString());
    //values():返回所有的枚舉類對象構(gòu)成的數(shù)組
    Season1[] values = Season1.values();
    for(int i = 0;i < values.length;i++){System.out.println(values[i]);
    }
    //valueOf(String objName):返回枚舉類中對象名是objName的對象。
    Season1 winter = Season1.valueOf("WINTER");
    System.out.println(winter);
    
  3. 使用enum關(guān)鍵字定義的枚舉類實現(xiàn)接口的情況

    • 情況一:實現(xiàn)接口,在enum類中實現(xiàn)抽象方法。
    • 情況二:讓枚舉類的對象分別實現(xiàn)接口中的抽象方法。

8.2:注解

  1. 理解注解(Annotation)

    • JDK 5.0開始,Java增加了對元數(shù)據(jù)MetaData的支持,也就是Annotation(注解)。
    • Annotation其實就是代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執(zhí)行相應的處理。通過使用Annotation,程序員可以在不改變原有邏輯的情況下,在源文件中嵌入一些補充信息。
  2. 注解實例

    • @Override:限定重寫父類方法,該注解只能用于方法。

      class Person{private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public void walk() {System.out.println("人走路");}
      }class Student extends Person{@Overridepublic void walk() {System.out.println("學生走路");}
      }
      
    • @Deprecated:用于表示所修飾的元素(類,方法等)已過時。通常是因為所修飾的結(jié)構(gòu)危險或存在更好的選擇。

      @Deprecated
      public Date(int year, int month, int date) {this(year, month, date, 0, 0, 0);
      }
      
    • @SuppressWarnings:抑制編譯器警告。

      @SuppressWarnings("unused")
      int num = 10;
      @SuppressWarnings({"unused", "rawtypes"})
      ArrayList list = new ArrayList();
      
  3. 自定義Annotation

    • 注解類型聲明為:@interface。
    • 自定義注解自動繼承了java.lang.annotation.Annotation接口。
    • 注解的成員變量Annotation定義中以無參數(shù)方法的形式來聲明。其方法名和返回值定義了該成員的名字和類型。我們稱為配置參數(shù)。類型只能是八種基本數(shù)據(jù)類型、String、Class、enum、Annotation類型。
    • 內(nèi)部定義成員,通常使用value表示。
    • 可以指定成員的默認值,使用default定義。
    • 如果定義的注解含有配置參數(shù),那么使用時必須指定參數(shù)值,除非它有默認值。格式是參數(shù)名 = 參數(shù)值,如果只有一個參數(shù)成員,且名稱為value,可以省略value=。
    • 如果自定義注解沒有成員,表名是一個標識作用。
    public @interface MyAnnotation {String value() default "hello";
    }
    

    注意:自定義注解必須配上注解的信息處理流程才有意義。

  4. JDK中的元注解

    • JDK的元Annoation用于修飾其他Annotation定義。

    • JDK 5.0提供了4個標準的meta-annontation類型,分別是:

      1. Retention

        ? 只能用于修飾一個Annotation定義,用于指定該Annotation的生命周期,@Rentention包含一個RetentionPolicy類型的成員變量,使用@Rentention時必須為該value成員變量指定值:

        • RetentionPolicy.COURCE:在源文件中有效(即源文件保留),編譯器直接丟棄這種策略的注釋。
        • RetentionPolicy.CLASS:在class文件中有效(即class保留),當運行Java程序時,不會保留注解。這是默認值。
        • RetentionPolicy.RUNTIME:在運行時有效(即運行時保留),當運行Java程序時,JVM會保留注釋。程序可以通過反射獲取該注釋。
      2. Target

        ? 用于修飾Annotation定義,用于指定被修飾的Annotation能用于修飾哪些程序元素。@Target也包含一個名為value的成員變量。
        在這里插入圖片描述

      3. Documented

        ? 用于指定被該元Annotation修飾的Annotation類將被javadoc工具提取成文檔。默認情況下,javadoc是不包括注解的。

        ? 定義為Documented的注解必須設置Retention值為RUNTIME

      4. Inherited

        ? 被它修飾的Annotation將具有繼承性。如果某個類使用了被@Inherited修飾的Annotation,則其子類將自動具有該注解。

  5. JDK 8中注解的新特性

    • 可重復注解

      1. MyAnnotation上聲明@Repeatable,成員值為MyAnnotations.class
      2. MyAnnotationTargetRetention等元注解與MyAnnotations相同
      @Inherited
      @Repeatable(MyAnnotations.class)
      @Retention(RetentionPolicy.RUNTIME)
      @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER,TYPE_USE})
      public @interface MyAnnotation {String value() default "hello";
      }
      
      @Inherited
      @Retention(RetentionPolicy.RUNTIME)
      @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE,TYPE_PARAMETER,TYPE_USE})
      public @interface MyAnnotations {MyAnnotation[] value();
      }
      
      @MyAnnotation(value = "hi")
      @MyAnnotation(value = "abc")
      class Person{
      }
      
    • 類型注解

      1. ElementType.TYPE_RARAMETER:表示該注解能寫在類型變量的聲明語句中。
      2. ElementType.TYPE_USE:表示該注解能寫在使用類型的任何語句中。
http://aloenet.com.cn/news/45473.html

相關(guān)文章:

  • 網(wǎng)站建設前期預算端點seo博客
  • 物流企業(yè)網(wǎng)站有哪些百度網(wǎng)站優(yōu)化排名
  • 做公司網(wǎng)站 找誰做網(wǎng)絡營銷主要學什么
  • 做網(wǎng)站 信息集成過程的順序品牌營銷策略案例
  • UE做的比較好的網(wǎng)站軟文的概念是什么
  • 開獎網(wǎng)站怎么做營銷推廣網(wǎng)
  • 長春老火車站圖片如何宣傳推廣自己的產(chǎn)品
  • 用網(wǎng)站做淘客怎么做株洲seo優(yōu)化推薦
  • 房地產(chǎn)銷售自我介紹大兵seo博客
  • 淘寶網(wǎng)站是什么語言做的qq群推廣
  • 政府大型門戶網(wǎng)站建設方案seo專業(yè)培訓班
  • 如何做旅游網(wǎng)站的旅行家網(wǎng)址推廣
  • 網(wǎng)站規(guī)劃書包括哪些方面公司官網(wǎng)怎么制作
  • 教務系統(tǒng)網(wǎng)站怎么做南寧網(wǎng)站seo外包
  • 中企動力制作的網(wǎng)站后臺怎樣搭建自己的網(wǎng)站
  • 做網(wǎng)站一個月30ip網(wǎng)絡推廣是網(wǎng)絡營銷的基礎(chǔ)
  • 做cpa能用什么網(wǎng)站seo怎么優(yōu)化簡述
  • 怎么創(chuàng)建網(wǎng)站論壇重慶seo公司
  • 網(wǎng)站建設企業(yè)的未來發(fā)展計劃十大少兒編程教育品牌
  • 網(wǎng)頁設計代碼模板海賊王網(wǎng)站優(yōu)化排名提升
  • 牛商網(wǎng)營銷型網(wǎng)站建設廈門百度廣告開戶
  • 網(wǎng)站建設免費教程我是seo關(guān)鍵詞
  • 佛山建網(wǎng)站建網(wǎng)站找哪個公司
  • 業(yè)余學做衣服上哪個網(wǎng)站軟文網(wǎng)站大全
  • 廈門國外網(wǎng)站建設公司排名下載百度app最新版到桌面
  • 微信商城怎么進鎮(zhèn)江交叉口優(yōu)化
  • 大連模板網(wǎng)站制作公司廣州網(wǎng)絡推廣外包
  • 上海最新傳染病疫情今天在線seo外鏈工具
  • 哪個網(wǎng)站可以做練習題百度收錄排名
  • 零售網(wǎng)站有哪些平臺信息流廣告代理商排名