日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中的枚举类_java中的枚举类型

發布時間:2024/10/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的枚举类_java中的枚举类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java中為了對參數類型使用限定,引入了泛型,實現了在編譯期對參數類型是否合法的判斷。同樣,java為了對參數的值的限定,引入了枚舉類,實現了在編譯期對參數的值是否合法的判斷。

首先我們用自定義類的方法實現枚舉類,可以參考單例模式的實現思路,將類的構造方法設置為私有的,在類內部定義static的變量,只能直接通過類名訪問自己定義的類,實現對類的值的限定。

1 public class TestEnum {

2

3 public static void main(String[] args) {

4 Weekday w = Weekday.Fri;

5 System.out.println(w);

6 System.out.println(Weekday.s);

7

8 }

9 }

10

11 class Weekday{

12 String weekday = null;

13 private Weekday(String str){

14 this.weekday = str;

15 }

16 static int s = 3000;

17 public static Weekday Sun = new Weekday("Sunday");

18 public static Weekday Mon = new Weekday("Monday");

19 public static Weekday Tues = new Weekday("Tuesday");

20 public static Weekday Wed = new Weekday("Wednesday");

21 public static Weekday Thu = new Weekday("Thurday");

22 public static Weekday Fri = new Weekday("Friday");

23 public static Weekday Sat = new Weekday("Saturday");

24

25 @Override

26 public String toString(){

27 return this.weekday;

28 }

29

30

31 }

使用的時候,每調用一次static屬性,就創建了一個實例。靜態的成員可以通過類名直接訪問。

java中用enum表示枚舉類,我們通過例子學習:

1 public class TestEnum1 {

2 public static void main(String[] args) {

3 // TODO Auto-generated method stub

4 Num n = Num.Six;

5 System.out.println(n);

6 System.out.println(n.ordinal());//表示的數字,從0開始。

7 System.out.println(Weekday1.FRI);

8 System.out.println(Weekday1.FRI.nextDay().nextDay());

9 System.out.println(Weekday1.FRI.nextDay().nextDay().ordinal());

10 }

11 }

12

13 enum Num{

14 Zero,One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten;

15 Num() {

16 System.out.println("this is null parameter constructor func");

17 }

18 }

19

20 enum Weekday1{

21 SUN("Sunday"),MON("Monday"),TUE("Tuesday"),WED("Wednesday"),THU("Thurday"),FRI("Friday"),SAT("Saturday");

22 String weekday1 = null;

23 Weekday1(String weekday1){

24 this.weekday1 = weekday1;

25 }

26 @Override

27 public String toString(){

28 return this.weekday1;

29 }

30 public Weekday1 nextDay() {

31 switch (this) {

32 case SUN:

33 return MON;

34 case MON:

35 return TUE;

36 case TUE:

37 return WED;

38 case WED:

39 return THU;

40 case THU:

41 return FRI;

42 case FRI:

43 return SAT;

44 default:

45 return SUN;

46 }

47

48 }

49 }

通過兩個類的比較和輸出可以總結出:

enum是一個特殊的類,他定義了自己的常量,而且類型是自己,默認的toString方法是把自己的名字轉換成string。

enum也有普通類的大部分用法,包括構造函數,私有變量,抽象函數(比如匿名內部類實現),不過用自定義成員的時候。必須把枚舉常量放在枚舉類的第一行。每個枚舉常量在定義的時候使用了一次構造函數,在其他類中調用的時候也會再調用一次構造函數,兩次的值一樣,但是指向的實際對象其實是不一樣的(可以通過構造函數的打印次數得出此結論)。ordinal()函數返回枚舉常量的序數(在聲明中的位置,初始常量的序數是0),被設計用于復雜的基于enum的數據結構。

總結

以上是生活随笔為你收集整理的java中的枚举类_java中的枚举类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。