Java - Enums: Panduan untuk Pemula
Halo kepada semua yang ingin menjadi programmer Java! Hari ini, kita akan membahas tentang dunia yang menarik tentang Java Enums. Jangan khawatir jika anda belum pernah mendengar tentang Enums sebelum ini – pada akhir tutorial ini, anda akan menjadi pakar(Enum)! Jadi, rakamkan rakaman anda dengan rakaman minuman favorit anda, dan mari kita mulakan!
Pengenalan kepada Enums
Adakah anda pernah mendapati diri anda dalam situasi di mana anda perlu untuk mewakili satu set tetap konstan dalam kod anda? Mungkin anda sedang membuat program untuk kedai kopi dan perlu untuk mewakili ukuran yang berbeza atas rakaman kopi. Atau mungkin anda sedang membina permainan dan perlu untuk mewakili arah yang berbeza yang karakter boleh bergerak. Ini adalah di mana Enums datang untuk penyelamat!
Enum, penyingkat untuk "enumeration," adalah jenis kelas khas di Java yang mewakili satu kumpulan konstan (variable yang tidak boleh diubah, seperti variable final). Pikirkan tentang cara yang unik ini untuk membuat satu set nilai yang telah ditetapkan sebelumnya yang tidak berubah.
Pengisytiharan Kelas
Mari kita mula dengan cara untuk mendeklarasikan Enum. Sintaksnya sangat mudah:
enum CoffeeSize {
KECIL,
SEDANG,
BESAR
}
Dalam contoh ini, kita telah membuat Enum yang dipanggil CoffeeSize
dengan tiga konstan: KECIL, SEDANG, dan BESAR. Perhatikan bagaimana kita menggunakan kata kunci enum
selain dari class
, dan bagaimana setiap konstan dipisahkan oleh koma.
Konstruktor Kelas
Enums boleh memiliki konstruktor, seperti kelas biasa. Ini membenarkan kita untuk mengaitkan data tambahan dengan setiap konstan enum. Mari kita kembangkan contoh CoffeeSize
kita:
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
}
Dalam versi yang dikemaskinikan ini, kita telah menambahkan konstruktor yang mengambil parameter int
yang mewakili jumlah ounces untuk setiap ukuran. Kita juga telah menambahkan medan private ounces
dan method penyedia getOunces()
.
Method Kelas
Enums boleh memiliki method seperti kelas biasa. Mari kita tambahkan method kepada enum CoffeeSize
kita:
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
public String getDescription() {
return this.name() + " kopi (" + this.ounces + " oz)";
}
}
Kita telah menambahkan method getDescription()
yang mengembalikan satu rentetan yang menjelaskan ukuran kopi. Method name()
adalah warisan dari kelas Enum
dan mengembalikan nama konstan sebagai rentetan.
Method Warisan
Semua enums secara implisit warisi dari java.lang.Enum
. Ini berarti mereka datang dengan beberapa method bawaan. Berikut adalah beberapa method yang paling kerap digunakan:
Method | Keterangan |
---|---|
name() |
Mengembalikan nama konstan enum |
ordinal() |
Mengembalikan kedudukan konstan enum (berdasarkan 0) |
valueOf(String name) |
Mengembalikan konstan enum dengan nama yang ditentukan |
values() |
Mengembalikan satu array yang mengandungi semua konstan enum |
Contoh
Sekarang, mari kita gabungkan semua dalam satu contoh lengkap:
public class CoffeeShop {
public static void main(String[] args) {
CoffeeSize mySize = CoffeeSize.SEDANG;
System.out.println("Saya memesan " + mySize.getDescription());
System.out.println("Ukuran ini memiliki nilai ordinal: " + mySize.ordinal());
System.out.println("\nSemua ukuran yang tersedia:");
for (CoffeeSize size : CoffeeSize.values()) {
System.out.println(size.getDescription());
}
// Menggunakan valueOf
CoffeeSize anotherSize = CoffeeSize.valueOf("BESAR");
System.out.println("\nMenggunakan valueOf: " + anotherSize.getDescription());
}
}
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
public String getDescription() {
return this.name() + " kopi (" + this.ounces + " oz)";
}
}
Output
Apabila anda menjalankan program ini, anda akan melihat output berikut:
Saya memesan SEDANG kopi (12 oz)
Ukuran ini memiliki nilai ordinal: 1
Semua ukuran yang tersedia:
KECIL kopi (8 oz)
SEDANG kopi (12 oz)
BESAR kopi (16 oz)
Menggunakan valueOf: BESAR kopi (16 oz)
Mari kita kongsi apa yang terjadi dalam contoh ini:
- Kita membuat satu variable
CoffeeSize
mySize
dan set keSEDANG
. - Kita cetak deskripsi
mySize
menggunakan methodgetDescription()
. - Kita cetak nilai ordinal
SEDANG
, yang adalah 1 (ingat, nilai ordinal dimulai dari 0). - Kita gunakan satu loop for-each untuk mengulangi semua nilai
CoffeeSize
dan cetak deskripsi mereka. - Akhirnya, kita demonstrasi penggunaan
valueOf()
untuk mendapatkan konstan enumBESAR
dengan nama itu.
Dan itu tadi! Anda baru saja mengambil langkah pertama anda ke dalam dunia Java Enums. Mereka adalah alat yang kuat untuk mewakili satu set tetap konstan dalam cara yang aman jenis.
Ingat, Enums adalah lebih daripada hanya konstan yang diberikan hak istimewa. Mereka boleh memiliki konstruktor, medan, dan method, membuat mereka sangat versatile. Mereka adalah yang sempurna untuk mewakili hal seperti hari dalam minggu, jenis rakaman kartu, ukuran pizza, atau satu set nilai tetap lain dalam program anda.
Apabila anda teruskan perjalanan Java anda, anda akan menemui banyak penggunaan lagi untuk Enums. Mereka adalah satu bahagian fundamental bagi bahasa Java, dan menguasainya akan menjadikan anda menjadi programmer yang lebih efektif dan efisien.
Teruskan untuk berlatih, teruskan untuk mengkod, dan yang paling penting, teruskan untuk menikmati proses belajar. Sebelum anda tahu, anda akan menulis program Java yang kompleks dengan mudah. Happy coding!
Credits: Image by storyset