Java Enums (jenis yang disenaraikan) adalah jenis data khas yang digunakan untuk menentukan koleksi pemalar. Mereka amat berguna untuk mewakili set nilai tetap di mana anda ingin memastikan keselamatan jenis dan amalan pengekodan deskriptif yang jelas. Berikut adalah cara anda boleh menggunakan enums di Java untuk mewakili set nilai tetap:
Mengisytiharkan enum:
Untuk membuat enum, gunakan kata kunci enum
yang diikuti dengan nama enum dan nilai -nilainya di dalam pendakap keriting. Berikut adalah contoh mudah enum yang mewakili hari dalam seminggu:
<code class="java">public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }</code>
Menggunakan enum:
Anda boleh menggunakan enum sebagai jenis untuk pembolehubah, hujah kaedah, dan jenis pulangan. Contohnya:
<code class="java">Day today = Day.MONDAY;</code>
Anda juga boleh membandingkan nilai enum menggunakan operator ==
:
<code class="java">if (today == Day.MONDAY) { System.out.println("It's Monday!"); }</code>
Pembina dan bidang enum:
Anda boleh menambah medan dan pembina untuk menyimpan data tambahan dengan setiap pemalar enum. Sebagai contoh, jika anda ingin mengaitkan nilai angka dengan setiap hari:
<code class="java">public enum Day { SUNDAY(1), MONDAY(2), TUESDAY(3), WEDNESDAY(4), THURSDAY(5), FRIDAY(6), SATURDAY(7); private final int dayNumber; Day(int dayNumber) { this.dayNumber = dayNumber; } public int getDayNumber() { return dayNumber; } }</code>
Anda boleh mengakses bidang ini melalui kaedah getter:
<code class="java">Day today = Day.MONDAY; int dayNumber = today.getDayNumber(); // Returns 2</code>
Menggunakan enums di Java untuk menguruskan set nilai tetap menawarkan beberapa manfaat penting:
Day.SUN
dalam contoh di atas akan mengakibatkan ralat penyusunan.Menambah kaedah tersuai untuk enums di Java adalah mudah dan dapat meningkatkan fungsi mereka dengan ketara. Inilah cara anda boleh melakukannya:
Menambah kaedah:
Anda boleh menambah kaedah secara langsung dalam pengisytiharan enum. Kaedah ini dikongsi oleh semua pemalar enum. Sebagai contoh, anda boleh menambah kaedah untuk memeriksa sama ada hari adalah hujung minggu:
<code class="java">public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; public boolean isWeekend() { return this == SUNDAY || this == SATURDAY; } }</code>
Anda boleh menggunakan kaedah ini seperti berikut:
<code class="java">Day today = Day.SUNDAY; if (today.isWeekend()) { System.out.println("It's a weekend!"); }</code>
Kaedah Abstrak:
Anda juga boleh menentukan kaedah abstrak dalam enum, yang memerlukan setiap enum pemalar untuk menyediakan pelaksanaannya sendiri. Inilah cara anda boleh melakukan ini:
<code class="java">public enum Day { SUNDAY { public String getDescription() { return "A day for resting and relaxing."; } }, MONDAY { public String getDescription() { return "The start of the work week."; } }, // Similar implementations for other days... public abstract String getDescription(); }</code>
Anda kemudian boleh memanggil kaedah ini pada mana -mana enum pemalar:
<code class="java">Day today = Day.MONDAY; System.out.println(today.getDescription()); // Prints: "The start of the work week."</code>
Ya, enums di Java boleh digunakan dalam pernyataan suis, yang boleh membawa kepada kod yang lebih mudah dibaca dan efisien berbanding menggunakan rantai jika-else. Berikut adalah cara anda boleh menggunakan enums dalam penyataan suis:
Pernyataan suis asas:
Anda boleh menggunakan nilai enum secara langsung dalam kes suis. Sebagai contoh, menggunakan enum Day
dari sebelumnya:
<code class="java">Day today = Day.MONDAY; switch (today) { case MONDAY: System.out.println("Start of the work week."); break; case FRIDAY: System.out.println("End of the work week."); break; case SATURDAY: case SUNDAY: System.out.println("It's a weekend!"); break; default: System.out.println("Midweek day."); }</code>
Tukar Ekspresi (Java 12):
Bermula dengan Java 12, anda boleh menggunakan ekspresi suis, yang memberikan cara yang lebih ringkas untuk mengendalikan logik suis. Inilah contoh menggunakan enum Day
:
<code class="java">Day today = Day.MONDAY; String message = switch (today) { case MONDAY -> "Start of the work week."; case FRIDAY -> "End of the work week."; case SATURDAY, SUNDAY -> "It's a weekend!"; default -> "Midweek day."; }; System.out.println(message);</code>
Menggunakan enums dalam pernyataan suis bukan sahaja memastikan bahawa anda bekerja dengan set nilai tertutup yang diketahui tetapi juga membantu menjadikan kod anda lebih mudah dipelihara dan kurang rawan ralat.
Atas ialah kandungan terperinci Bagaimanakah saya menggunakan enum Java untuk mewakili set nilai tetap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!