資源描述:
《java枚舉及注解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、java枚舉java注解java新特性可變參數(shù)java枚舉:在類的對象有限的情況下,可是使用枚舉類的方式創(chuàng)建有限個類的對象。單例模式是一種特殊的枚舉類。自定義枚舉類:1,私有化構(gòu)造器2,在類的內(nèi)部創(chuàng)建若干個類的對象,publicstaticfinal3,在類中的其他額外屬性,定義為privatefinal,可以額外的再聲明getter()方法。枚舉類的使用:2.使用enum關(guān)鍵字定義枚舉類*>常用的兩個方法:valueOf()values()*>枚舉類實現(xiàn)接口:①讓類實現(xiàn)接口以后,重寫接口中的抽象方法②讓類中的對象分
2、別重寫接口中的抽象方法必須在枚舉類的第一行聲明枚舉類對象。
枚舉類與普通類的區(qū)別:
使用enum定義的枚舉類默認繼承了java.lang.Enum類
枚舉類的構(gòu)造器只能使用private訪問控制符
所有實例必須在枚舉類中首行顯式列出(,分隔;結(jié)尾).列出的實例系統(tǒng)會自動添加publicstaticfinal修飾
JDK1.5中可以在switch表達式中使用Enum定義的枚舉類的對象作為表達式,case子句可以直接使用枚舉值的名字,無需添加枚舉類作為限定
實例:interfaceInfo{publicvoidshow(
3、);}enumPerson01implementsInfo{MAN("man",true){publicvoidshow(){System.out.println(getType()+"hasmustache"+isMustache());}},WOMAN("woman",false){@Overridepublicvoidshow(){System.out.println(getType()+"hasmustache"+isMustache());}};privatefinalStringtype;privatef
4、inalbooleanisMustache;privatePerson01(Stringtype,booleanisMustache){this.type=type;this.isMustache=isMustache;}}枚舉類的實例對象MAN與WOMEN必須放在枚舉類首行各式:instanceName1(構(gòu)造器參數(shù)),instanceName2(構(gòu)造器參數(shù))...;另外枚舉類可以繼承接口,并在枚舉實例中實現(xiàn)接口中的抽象方法。枚舉類的常用方法:values()返回枚舉類型的對象數(shù)組。該方法可以很方便地遍歷所有的枚舉
5、值。
valueOf(Stringstr)可以把一個字符串轉(zhuǎn)為對應的枚舉類對象。要求字符串必須是枚舉類對象的“名字”。如不是,會有運行時異常。否則,報java.lang.IllegalArgumentException異常枚舉類的對象可以分別實現(xiàn)接口的抽象方法。java注解Annotation主要內(nèi)容
1JDK內(nèi)置的三個常用注解2如何自定義一個注解3元注解:對現(xiàn)有注解進行注解的一種注解4通過反射機制或許類的注解信息(反射的時候深入)JDK內(nèi)置的基本注解類型(3個)
@Override,限定重寫父類方法,該注釋只能用于
6、方法@Deprecated,用于表示某個程序元素(類,方法等)已過時@SuppressWarnings,抑制編譯器警告,該注解需要參數(shù)自定義注解類型
定義新的Annotation類型使用@interface關(guān)鍵字
Annotation的成員變量在Annotation定義中以無參數(shù)方法的形式來聲明.其方法名與返回值定義了該成員的名字與類型.
可以在定義Annotation的成員變量時為其指定初始值,指定成員變量的初始值可使用default關(guān)鍵字
public@interfaceMyAnnotation{
Stringn
7、ame()default“atguigu";
}
沒有成員定義的Annotation稱為標記;包含成員變量的Annotation稱為元數(shù)據(jù)Annotation
對注解進行注解(4個)
5.0提供了專門在注解上的注解類型,分別是:
@Retention:指定該annotation保留的時間@Rentention包含一個RetentionPolicy類型的成員變量,使用@Rentention時必須為該value成員變量指定值:RetentionPolicy.SOURCE:編譯器直接丟棄這種策略的注釋
RetentionP
8、olicy.CLASS:編譯器將把注釋記錄在class文件中.當運行Java程序時,JVM不會保留注解。這是默認值
RetentionPolicy.RUNTIME:編譯器將把注釋記錄在class文件中.當運行Java程序時,JVM會保留注釋.程序可以通過反射獲取該注釋
@Target:用于修飾Annotation定義,用于指定被修飾的Annot