1. 程式人生 > >java基礎-列舉類和註解

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

相關推薦

java基礎-列舉註解

一、列舉類1.如何自定義列舉類。 列舉類:類的物件是有限個的,確定的。   1.1 私有化類的構造器,保證不能在類的外部建立其物件    1.2 在類的內部建立列舉類的例項。宣告為:public static final    1.3 若類有屬性,那麼屬性宣告為:private final 。此屬性在構造器中

java基礎篇---------物件(OOP)

JAVA 的是完全面向物件程式設計的!!! 面向物件程式設計的三大特性:封裝、繼承、多型 1.類 類是構造物件的模板或者藍圖,由類構造物件的過程就是建立類的例項; 類裡面存放類的成員變數,成員方法, class student { private int age; //

Class物件 java反射 AccessibleObject 註解

java 反射機制:在程式中獲取已載入到jvm中的java物件的資訊,並檢測或修改 獲取構造器 獲取成員變數 獲取方法 明顯 Accessible並不是標識方法能否訪問的. public的方法 Accessible仍為false  使用了method.setAccess

java 基礎 -- 列舉的簡介

自定義列舉類: /** * @Date: 2018/12/3 11:18 * @Description: 自定義列舉類 */ public class testEnum { public static void main(String args[]) { S

Java基礎----Object常用API

第一章 Object類 1.1 概述 java.lang.Object類是Java語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。在物件例項化的時候,最終找的父類就是Object。 如果一個類沒有特別指定父類, 那麼預設則繼承自Object類。

Java基礎-----抽象介面的區別

成員區別 (1)抽象類: 1、成員變數:可以是變數,也可以是常量。 2、構造方法:有。 3、成員方法:可以抽象,也可以非抽象。 (2)介面: 1、成員變數:只可以是常量。 2、成員方法:只可以抽象,也可以非抽象。 設計理念區別 (1)抽

JAVA基礎——ObjectClass

什麼是Object類 Object類是所有類根類,其中也有很多方法。 Object類中的方法: equals方法: 物件1.equals(物件2) ————比較的是兩個物件的記憶體地址是否相同,返回boolean 發現其實equals方法有時候並不是我們想要的,我們想要的

關於JAVA列舉Enum方法

1.列舉類入門 Java列舉類是從Java5開始支援的。 列舉類的構造方法是用private修飾的。列舉類的所有例項必須在類的第一行列出,否則這個列舉類不會產生物件。 而且這些例項都是public static void. 每個列舉類都有一個values

Java基礎——基本型別包裝、基本型別字串之間的轉換

基本型別和包裝類之間的轉換 基本型別和包裝類之間經常需要互相轉換,以 Integer 為例(其他幾個包裝類的操作雷同哦): 在 JDK1.5 引入自動裝箱和拆箱的機制後,包裝類和基本型別之間的轉換就更加輕鬆便利了。 那什麼是裝箱和拆箱呢?我們分別來看下 裝箱:把基本型別轉換成包裝類,使其具有物件的

java中的列舉常量的區別

假如有一筆業務需要稽核,稽核狀態分:未稽核,稽核中,稽核通過,稽核不通過。我們在程式裡是否可以直接這麼寫: if(state==1){//1代表未操作 //操作 }else{ //...... } 將狀態標識直接寫在程式碼裡面(硬編碼),只圖一時方便,卻是後患無窮,如果有一天你需要修改狀態標識,用0代表未稽

ACCP8.0 第一學期java課程-關於對象

logs 定義類 變量名 bsp creat 符號 printf 遊戲 ati 本章重點1.掌握類和對象2.理解封裝3.會創建類和對象本章難點創建類和對象一 理解類1.類描述出了事物的特征和行為2.類也可以理解成一系列相同特點和相同行為的事物的集合3.類是一個模板,通過這個

Java基礎加強——加載機制

操作 擴展類 代碼 java類 sys 讓我 接口 加載 使用   什麽叫類加載     JVM把 .class 字節碼文件加載到內存,並進行相關的校驗、解析、初始化,最終轉換為虛擬機可用的JAVA類型的過程,稱為JVM類加載機制。   (當然,JVM並不關心class文件

java基礎(System.errSystem.out)

main system 如果 環境 rgs 主機 重定向 ava 日誌記錄 今天有位同事在使用System.err和System.out遇上了一些小問題. 看了些資料總結下:   1.JDK文檔對兩者的解釋:   out:  “標準”輸出流。此流已打開並準備接受輸出數據。通

java基礎之getpost的差別

oge tracking data- 宋體 行處理 art 其它 family 我們 上篇博文講到HTTP協議,本篇介紹HTTP請求方法中get和post的差別: 首先,最明顯的一點表象上的差別:GET 方式。將請求參數附加在url之後,POST將請求參數附加在請求頭

Java基礎之finalstatic關鍵字

推薦 構造方法 其他 如果 靈活 位置 map 機制 lis 一、final 根據程序上下文環境,它可以修飾非抽象類、非抽象類成員方法和變量。 final類不能被繼承,沒有子類,final類中的方法默認是final的。 final

Java中抽象接口的區別

pre data 區分 信息 展示 關於 面向 得出 lose 在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向對象能力。abstract class和interfac

Java中的接口

擁有 編程 指針 比較 抽象類 trac 屬於 ace code 類有兩種: 普通類 : 抽象類(abstract): 抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變量、成員方法和構造方法的訪問方式和普通類一樣。 由於抽象類不能實例化對象,所以抽象類必須被繼承

Java(五、對象中的例題)

rec for spa text manage i+1 數值 jpg length 一、方法中的參數為數值型的(int) import java.util.Scanner; public class ScoreCalc { public void calc(i

JAVA基礎_加載器

內部類 ror 遇到 大致 otf win class pla nal 什麽是類加載器類加載器是Java語言在1.0版本就引入的。最初是為了滿足JavaApplet需要。現在類加載器在Web容器和OSGI中得到了廣泛的應用,一般來說,Java應用的開發人員不需要直接同類加載

Java基礎-Random(05)

tint sca mar ext random類 color ner margin logs 隨機數(Random) 作用:用於產生一個隨機數 使用步驟(和Scanner類似) 導包import java.util.Random; 創建對象Random r = ne