Java enum & enum Class (Dengan Contoh)

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

Di Java, enum (kependekan dari enumeration) adalah jenis yang memiliki kumpulan nilai konstan yang tetap. Kami menggunakan enumkata kunci untuk mendeklarasikan enum. Sebagai contoh,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Di sini, kami telah membuat enum bernama Size. Ini berisi nilai tetap SMALL, MEDIUM, LARGE, dan EXTRALARGE.

Nilai-nilai di dalam tanda kurung ini disebut konstanta enum (nilai).

Catatan: Konstanta enum biasanya ditampilkan dalam 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); ) )

Keluaran

 SEDANG KECIL

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

Selain itu, kita dapat membuat variabel jenis enum. Sebagai contoh,

 Size pizzaSize;

Di sini, pizzaSize adalah variabel dari tipe Ukuran. Itu hanya dapat diberikan dengan 4 nilai.

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

Contoh 2: Java Enum dengan pernyataan switch

 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(); ) )

Keluaran

 Saya memesan pizza ukuran sedang.

Dalam program di atas, kami telah membuat ukuran tipe enum. Kami kemudian mendeklarasikan pizzaSize variabel dari tipe Size.

Di sini, variabel pizzaSize hanya dapat ditetapkan dengan 4 nilai (SMALL, MEDIUM, LARGE, EXTRALARGE).

Perhatikan pernyataannya,

 Test t1 = new Test(Size.MEDIUM);

Ini akan memanggil Test()konstruktor di dalam kelas Test. Sekarang, variabel pizzaSize ditetapkan dengan konstanta MEDIUM.

Berdasarkan nilainya, salah satu kasus pernyataan kasus sakelar dieksekusi.

Kelas Enum di Java

Di Java, tipe enum dianggap sebagai tipe kelas khusus. Itu diperkenalkan dengan rilis Java 5.

Kelas enum dapat menyertakan metode dan bidang seperti kelas biasa.

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

Saat kita membuat kelas enum, kompilator akan membuat instance (objek) dari setiap konstanta enum. Selain itu, semua konstanta enum selalu public static finalsecara default.

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()); ) )

Keluaran

 Ukuran pizzanya kecil

Dalam contoh di atas, kami telah membuat kelas enum Size. Ini memiliki empat konstanta KECIL, SEDANG, BESAR dan EKSTRAL.

Karena Size adalah kelas enum, kompilator secara otomatis membuat instance untuk setiap konstanta enum.

Di sini, di dalam main()metode, kami telah menggunakan contoh SMALL untuk memanggil getSize()metode tersebut.

Catatan : Seperti kelas biasa, kelas enum juga dapat menyertakan konstruktor. Untuk mempelajari lebih lanjut tentang itu, kunjungi konstruktor enum Java.

Metode Kelas Java Enum

Ada beberapa metode yang telah ditentukan dalam kelas enum yang sudah tersedia untuk digunakan.

1. Java Enum ordinal ()

The ordinal()method mengembalikan posisi enum konstan. Sebagai contoh,

 ordinal(SMALL) // returns 0

2. Enum bandingkanTo ()

The compareTo()metode membandingkan konstanta enum berdasarkan nilai ordinal mereka. Sebagai contoh,

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

3. Enum toString ()

The toString()Metode mengembalikan representasi string konstanta enum. Sebagai contoh,

 SMALL.toString() // returns "SMALL"

4. Nama enum ()

The name()Metode mengembalikan nama ditentukan dari suatu konstanta enum dalam bentuk string. Nilai yang dikembalikan dari name()metode ini adalah final. Sebagai contoh,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

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 bahwa variabel tersebut akan memiliki salah satu dari empat nilai. Sekarang, Jika kita mencoba untuk meneruskan nilai selain keempat nilai tersebut, kompilator akan menghasilkan kesalahan.

Artikel yang menarik...