一些程式在執行時,他需要的資料不能是任意的,而必須是一定範圍內的值,jdk5以前採用自定義類來解決,jdk5以後可以直接採用列舉解決。
在jdk5之後,使用enum關鍵字定義一種新的型別,稱為列舉型別。
enum類和enum關鍵字
使用enum關鍵字定義的列舉類,實際上就相當於定義了乙個類,此類繼承了enum類而已。
無參
class grade
public satic final grade a = new grade();
public satic final grade b = new grade();
}//相當於
enum grade
帶參
import org.junit.test;
public class demo
public void print(grade g)
}enum grade
public string getvalue()
}
帶抽象方法
import org.junit.test;
public class demo
public void print(grade g)
}enum grade
}, b("89-80")
}; private string value;
private grade(string value)
public string getvalue()
public abstract string localevalue();
}
定義列舉類要用關鍵字enum;
所有列舉類都是enum的子類;
列舉類的第一行上必須是列舉項,最後乙個列舉項後的分號是可以省略的,但是如果列舉類有其他的東西,這個分號就不能省略。建議不要省略;
列舉類可以有構造器,但必須是private的,它預設的也是private的。列舉項的用法比較特殊:列舉(「」);
列舉類也可以有抽象方法,但是列舉項必須重寫該方法。
public class geadetest
}}
列舉:只能在本類中建立例項
register_succeed//註冊成功
register_failed//註冊失敗
JDK5的新特性可變引數
package cn.itcast 06 可變引數 在定義方法的時候我不知道定義多少個元素 格式 修飾符 返回值型別 方法名 資料型別.變數名 注意 這裡的變數是乙個陣列 如果乙個方法有可變引數,並且有多個引數,那麼,可變引數一定是最後乙個 因為可變引數前面的依次賦值,剩下的全部給可變引數 publ...
JDK5新特性之一 靜態匯入
現在讓我們來看看jdk5中有什麼更激動人心的改進和創新,我要介紹的是其中的乙個比較實用的特性 靜態匯入!直接看一段 吧,很容易就可以了解 package staticex public class transcendentalconstants public class irrationalcons...
JDK5新特性之執行緒鎖技術(二)
一.lock實現執行緒同步互斥 lock比傳統執行緒模型中的synchronized方式更加物件導向,與生活中的鎖類似,鎖本身也是乙個物件。兩個執行緒執行的 片段要實現同步互斥的效果,他們必須用同乙個lock物件。鎖是上在代表要操作的資源的類的內部方法中,而不是執行緒 中。public class ...