Enumerasi ialah himpunan dinamakan pemalar integer, digunakan untuk mengisytiharkan set pemalar dengan pengecam. Penghitungan adalah sangat biasa dalam kehidupan seharian Sebagai contoh, jantina seseorang hanya boleh "lelaki" atau "perempuan", seminggu hanya boleh menjadi salah satu daripada tujuh hari, dsb. Seperti ini, apabila pembolehubah mempunyai beberapa nilai yang mungkin tetap, ia boleh ditakrifkan sebagai jenis penghitungan.
Kelas penghitungan Java ditakrifkan menggunakan kata kunci enum, setiap pemalar dipisahkan dengan koma, dan koma bertitik digunakan pada penghujung
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 }
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } public class SeasonEnum { public static void main(String[] args) { System.out.println("请输入季节"+"\n"+"1、春天"+"\n"+"2、夏天"+"\n"+"3、秋天"+"\n"+"4、冬天"); Scanner scan =new Scanner(System.in); int seasons= scan.nextInt(); change(seasons); } private static void change(int seasons) { Season season=Season.spring; switch (seasons){ case 1: season=Season.spring; break; case 2: season=Season.summer; break; case 3: season=Season.autumn; break; case 4: season=Season.winter; break; } System.out.println(season); } }
enum Kelas enumerasi yang ditakrifkan oleh enum mewarisi kelas java.lang.Enum secara lalai dan melaksanakan java.lang.Serializable dan java .lang.Setanding dua antara muka. Kaedah
values(), ordinal() dan valueOf() terletak dalam kelas java.lang.Enum:
values() mengembalikan semua nilai dalam kelas enumerasi. Kaedah
ordinal() boleh mencari indeks setiap pemalar penghitungan, sama seperti indeks tatasusunan.
Kaedah valueOf() mengembalikan pemalar penghitungan nilai rentetan yang ditentukan.
values( ) 方法
boleh mengembalikan semua ahli penghitungan dalam bentuk tatasusunan, dan anda juga boleh mendapatkan ahli jenis penghitungan melalui kaedah ini.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 迭代季节 for (Season season : Season.values()) { System.out.println(season); } } }
Hasil:
ordinal() 方法
boleh masuk ahli Kedudukan indeks dalam penghitungan. Contoh berikut mencipta Isyarat jenis penghitungan yang mengandungi 3 ahli, dan kemudian memanggil kaedah ordinal() untuk mengeluarkan ahli dan kedudukan indeks yang sepadan.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 迭代季节 for (Season season : Season.values()) { // ordinal可以找到每个枚举常量的索引,就像数组索引一样。 System.out.println(season+" 索引为 "+season.ordinal()); } } }
Keputusan:
kaedah valueOf() mengembalikan rentetan yang ditentukan Pemalar penghitungan nilai
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 } } public class SeasonEnum { public static void main(String[] args) { // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Season.valueOf("summer")); // System.out.println(Season.valueOf("summ")); } }
Keputusan
Enumerasi boleh menggunakan sendiri sama seperti kelas biasa Pembolehubah, kaedah dan pembina, pembina hanya boleh menggunakan pengubah akses peribadi, jadi mereka tidak boleh dipanggil secara luaran.
Enumerasi boleh mengandungi kaedah konkrit dan abstrak. Jika kelas enumerasi mempunyai kaedah abstrak, setiap contoh kelas enumerasi mesti melaksanakannya.
enum Season{ spring,summer,autumn,winter; // 常量有 spring, summer, autumn,winter,分别表示春天,夏天,秋天,冬天,系统会自动添加 public static final 修饰 // 构造方法 private Season(){ System.out.println("Constructor called for :" +this.toString()); } public void SeasonInfo(){ System.out.println("spring"); } } } public class SeasonEnum { public static void main(String[] args) { Season season=Season.spring; season.SeasonInfo(); } }
Atas ialah kandungan terperinci Bagaimana untuk menggunakan pengiraan dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!