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!

Java - Enums

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:

  1. Kita membuat satu variable CoffeeSize mySize dan set ke SEDANG.
  2. Kita cetak deskripsi mySize menggunakan method getDescription().
  3. Kita cetak nilai ordinal SEDANG, yang adalah 1 (ingat, nilai ordinal dimulai dari 0).
  4. Kita gunakan satu loop for-each untuk mengulangi semua nilai CoffeeSize dan cetak deskripsi mereka.
  5. Akhirnya, kita demonstrasi penggunaan valueOf() untuk mendapatkan konstan enum BESAR 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