Java enum & enum Class (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai enum di Java. Kami akan belajar membuat dan menggunakan kelas enum dan enum dengan bantuan contoh.

Di Java, enum (kependekan untuk penghitungan) adalah jenis yang mempunyai set nilai tetap yang tetap. Kami menggunakan enumkata kunci untuk menyatakan jumlah. Sebagai contoh,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Di sini, kami telah membuat enum bernama Size. Ia mengandungi nilai tetap KECIL, MENENGAH, BESAR, dan LUAR BIASA.

Nilai-nilai ini di dalam pendakap dipanggil pemalar enum (nilai).

Catatan: Pemalar enum biasanya ditunjukkan dengan huruf besar.

Contoh 1: Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Main ( public static void main(String() args) ( System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); ) )

Pengeluaran

 PERUBATAN KECIL

Seperti yang dapat kita lihat dari contoh di atas, kita menggunakan nama enum untuk mengakses nilai tetap.

Kita juga boleh membuat pemboleh ubah jenis enum. Sebagai contoh,

 Size pizzaSize;

Di sini, pizzaSize adalah pemboleh ubah dari jenis Size. Ia hanya boleh diberikan dengan 4 nilai.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

Contoh 2: Java Enum dengan pernyataan beralih

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Test ( Size pizzaSize; public Test(Size pizzaSize) ( this.pizzaSize = pizzaSize; ) public void orderPizza() ( switch(pizzaSize) ( case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; ) ) ) class Main ( public static void main(String() args) ( Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); ) )

Pengeluaran

 Saya memesan pizza bersaiz sederhana.

Dalam program di atas, kami telah membuat ukuran jenis enum. Kami kemudian menyatakan saiz pizza yang berubah-ubah dari jenis Ukuran.

Di sini, pizzaSize yang berubah-ubah hanya dapat diberikan dengan 4 nilai (KECIL, MEDIUM, BESAR, LUAR BIASA).

Perhatikan kenyataannya,

 Test t1 = new Test(Size.MEDIUM);

Ia akan memanggil Test()pembina di dalam kelas Ujian. Kini, pizzaSize berubah dengan pemalar MEDIUM.

Berdasarkan nilai, salah satu kes pernyataan kes suis dijalankan.

Kelas Enum di Jawa

Di Jawa, jenis enum dianggap sebagai jenis kelas khas. Ini diperkenalkan dengan peluncuran Java 5.

Kelas enum boleh merangkumi kaedah dan bidang sama seperti kelas biasa.

 enum Size ( constant1, constant2,… , constantN; // methods and fields )

Apabila kita membuat kelas enum, penyusun akan membuat contoh (objek) setiap pemalar enum. Juga, semua pemalar enum selalu public static finalsecara lalai.

Contoh 3: Kelas Enum Java

 enum Size( SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() ( // this will refer to the object SMALL switch(this) ( case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; ) ) public static void main(String() args) ( // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); ) )

Pengeluaran

 Saiz pizza kecil

Dalam contoh di atas, kami telah membuat saiz kelas enum. Ia mempunyai empat pemalar KECIL, MEDIUM, BESAR dan LUAR BIASA.

Oleh kerana Size adalah kelas enum, penyusun secara automatik membuat contoh bagi setiap pemalar enum.

Di dalam main()kaedah ini, kami telah menggunakan contoh KECIL untuk memanggil getSize()kaedah tersebut.

Catatan : Seperti kelas biasa, kelas enum juga boleh merangkumi pembina. Untuk mengetahui lebih lanjut mengenainya, lawati Java enum konstruktor.

Kaedah Kelas Enum Java

Terdapat beberapa kaedah yang telah ditentukan di kelas enum yang sedia untuk digunakan.

1. Java Enum ordinal ()

The ordinal()Cara mengembalikan kedudukan pemalar enum. Sebagai contoh,

 ordinal(SMALL) // returns 0

2. Jumlah perbandinganTo ()

The compareTo()kaedah membandingkan pemalar enum berdasarkan nilai ordinal mereka. Sebagai contoh,

 Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)

3. Enum keString ()

The toString()Cara mengembalikan perwakilan rentetan daripada pemalar enum. Sebagai contoh,

 SMALL.toString() // returns "SMALL"

4. Nama enum ()

The name()Cara mengembalikan nama tertentu dalam pemalar enum dalam bentuk tali. Nilai yang dikembalikan dari name()kaedah adalah final. Sebagai contoh,

 name(SMALL) // returns "SMALL"

5. Nilai Enum JavaOf ()

The valueOf() method takes a string and returns an enum constant having the same string name. For example,

 Size.valueOf("SMALL") // returns constant SMALL.

6. Enum values()

The values() method returns an array of enum type containing all the enum constants. For example,

 Size() enumArray = Size.value();

Why Java Enums?

In Java, enum was introduced to replace the use of int constants.

Suppose we have used a collection of int constants.

 class Size ( public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; )

Here, the problem arises if we print the constants. It is because only the number is printed which might not be helpful.

So, instead of using int constants, we can simply use enums. For example,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

This makes our code more intuitive.

Also, enum provides compile-time type safety.

If we declare a variable of the Size type. For example,

 Size size;

Di sini, dijamin bahawa pemboleh ubah akan memegang salah satu daripada empat nilai. Sekarang, Sekiranya kita cuba meneruskan nilai selain daripada empat nilai tersebut, penyusun akan menghasilkan ralat.

Artikel menarik...