java基礎-枚舉類和註解

一、枚舉類
1.如何自定義枚舉類。 枚舉類:類的對象是有限個的,確定的。
   1.1 私有化類的構造器,保證不能在類的外部創建其對象 
   1.2 在類的內部創建枚舉類的實例。聲明爲:public static final 
   1.3 若類有屬性,那麼屬性聲明爲:private final 。此屬性在構造器中賦值。
2.使用enum關鍵字定義枚舉類
>2.1其中常用的方法:values()  valueOf(String name);
>2.2枚舉類如何實現接口  :①讓類實現此接口,類的對象共享同一套接口的抽象方法的實現。
①讓類的每一個對象都去實現接口的抽象方法,進而通過類的對象調用被重寫的抽象方法時,執行的效果不同


public class TestSeason1 {
public static void main(String[] args) {
Season1 spring = Season1.SPRING;
System.out.println(spring);
spring.show();
System.out.println(spring.getSeasonName());

System.out.println();
//1.values()
Season1[] seasons = Season1.values();
for(int i = 0;i < seasons.length;i++){
System.out.println(seasons[i]);
}
//2.valueOf(String name):要求傳入的形參name是枚舉類對象的名字。
//否則,報java.lang.IllegalArgumentException異常
String str = "WINTER";
Season1 sea = Season1.valueOf(str);
System.out.println(sea);
System.out.println();

Thread.State[] states = Thread.State.values();
for(int i = 0;i < states.length;i++){
System.out.println(states[i]);
}
sea.show();

}
}
interface Info{
void show();
}
//枚舉類
enum Season1 implements Info{
SPRING("spring", "春暖花開"){
public void show(){
System.out.println("春天在哪裏?");
}
},
SUMMER("summer", "夏日炎炎"){
public void show(){
System.out.println("生如夏花");
}
},
AUTUMN("autumn", "秋高氣爽"){
public void show(){
System.out.println("秋天是用來分手的季節");
}
},
WINTER("winter", "白雪皚皚"){
public void show(){
System.out.println("冬天裏的一把火");
}
};

private final String seasonName;
private final String seasonDesc;

private Season1(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}

@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc="
+ seasonDesc + "]";
}
// public void show(){
// System.out.println("這是一個季節");
// }
}




二、註解Annotation
1.JDK提供的常用的三個註解
@Override: 限定重寫父類方法, 該註釋只能用於方法
@Deprecated: 用於表示某個程序元素(類, 方法等)已過時
@SuppressWarnings: 抑制編譯器警告


2.如何自定義註解
以SuppressWarnings爲例進行創建即可


3.元註解:可以對已有的註解進行解釋說明。
Retention: SOURCE   CLASS  RUNTIME
Target:
Documented:javadoc
Inherited

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章