Tutorial Enum Java

Java enum adalah tipe Java khusus yang didefinisikan oleh kelas Java. Ini juga disebut tipe enumerasi Java. Ini diperkenalkan di Java versi 5 terlebih dahulu, yang terutama digunakan untuk mendefinisikan kumpulan konstanta. Jenis keamanan kompilasi dipastikan dengan menggunakan tipe enum. Jadi, ketika semua nilai variabel yang mungkin diketahui sebelum waktu kompilasi, maka lebih baik menggunakan tipe enum. Ini mendefinisikan kelas yang selalu memanjang dari java.lang.Enum. Bagaimana tipe enum dapat dideklarasikan dan digunakan di Java ditunjukkan dalam tutorial ini.

Sintaksis:

public enum enum_name {

    value1, value2, … valueN
}

Di Sini, enum kata kunci digunakan untuk mendeklarasikan jenis enumerasi, dan nilainya akan berupa nilai konstan apa pun. Penggunaan yang berbeda dari tipe enum di Java ditampilkan di bagian selanjutnya dari tutorial ini.

Contoh-1: Deklarasikan dan ulangi nilai enum

Bagaimana nilai enum dapat didefinisikan dan diakses menggunakan loop ‘untuk’ ditunjukkan pada contoh berikut. Di sini, nama tujuh hari kerja dalam bentuk pendek ditetapkan sebagai nilai enum. Selanjutnya, loop ‘for’ digunakan untuk mengulang setiap nilai dari hari kerja dan mencetak setiap nilai di setiap baris sebagai output.

public class enum1 {
   
    //Define the enum type
    public enum weekdays {
        Sun,Mon,Tue,Wed,Thu,Fri,Sat
    }
   
    //main() method
    public static void main(String[] args) {
        System.out.println("short form of 7 weekdays are :");      
        //Iterating the values of enum
        for (weekdays day : weekdays.values()) {
            System.out.println(day);
        }  
    }
}

Keluaran:

Output berikut akan muncul setelah menjalankan kode.

Contoh-2: Menggunakan enum dalam pernyataan if-else

Contoh berikut menunjukkan useran variabel enum dengan pernyataan if-else-if. Di sini, variabel enum bernamacoursesdideklarasikan dengan kode empat jalur sebagai nilai. Kelas berisi konstruktor yang akan menginisialisasi variabel bernamacoursedengan nilai enum apa pun. Di sini, kode kursus akan diberikan pada saat pembuatan objek, dan akan diperiksa dengan setiap kondisi ‘jika’ dan mencetak pesan di mana kondisi mengembalikan true. Jika semua kondisi kembali salah, maka pesan dari bagian lain akan dicetak.

public class enum2 {
   
    //Define the enum type
    public enum courses {
        CSE101,CSE205,CSE308,CSE407
    }
   
    //Declare a variable of enum type
    courses course;
   
    //Declare the constructor
    public enum2(courses course) {
        this.course = course;
    }
   
    a
    public static void main(String[] args) {
        //Declare an object
        enum2 object1 = new enum2(courses.CSE205);
       
        //Check the course value
        if(object1.course == courses.CSE101)
            System.out.print("course name is Computer Fundamental");
        else if(object1.course == courses.CSE205)
            System.out.print("course name is Data Structure");
        else if(object1.course == courses.CSE308)
            System.out.print("course name is Operating System");
        else if(object1.course == courses.CSE407)
            System.out.print("course name is Unix Programming");
        else
            System.out.print("Course code does not exist");
           
    }
}

Keluaran:

Dalam kode di atas, nilai enum, CSE205 disediakan pada saat pembuatan objek yang cocok dengan kondisi ‘jika’ kedua dan dicetak pesan, “course name is Data Structure.”

Contoh-3: Menggunakan enum dengan konstruktor dan metode

Bagaimana konstruktor enum dan metode enum dapat didefinisikan dan digunakan di java ditunjukkan pada contoh berikut. Dua belas nilai enum dengan kode didefinisikan dengan dua belas bulan dalam bentuk singkat. Konstruktor enum dengan parameter dideklarasikan dalam kode yang menginisialisasi variabel integer pribadi bernamamCode. Metode enum bernamareadMCode() dideklarasikan untuk mengembalikan nilai mCode. Dalammain()metode, enam variabel dideklarasikan dan diinisialisasi dengan string kosong untuk menyimpan nilai enum tertentu berdasarkan nilai kasus sakelar. Di sini, loop ‘for’ digunakan untuk mengulangi setiap nilai enum dan mendeklarasikan objek enum berdasarkan setiap nilai. Ketika objek enum dibuat, maka kode nilai enum yang sesuai akan diinisialisasi kemCode. Nilai kembali darireadMCode()metode akan digunakan di sakelar untuk mencocokkan dengan nilai kasus. Di sini, blok pernyataan tertentu didefinisikan untuk dua nilai kasus. Misalnya, 0 dan 1 akan dikembalikan sebagaimCode selama berbulan-bulan, JAN dan FEB. Nama dua bulan ini akan disimpan dalam variabels1dan mencetak nilai dengan menggabungkan dengan string lain. Tugas yang sama akan dilakukan dengan lima variabel lainnya,s2, s3, s4, s5, dan s6, untuk sepuluh bulan lainnya.

Menurut kode, Winter akan dicetak untuk bulan tersebut JAN dan FEB. Spring akan dicetak untuk bulan MAR dan APR. Summer akan dicetak untuk bulan MAY dan JUN. Rainy Season akan dicetak untuk bulan JUL dan AUG. Autumn akan dicetak untuk bulan SEP dan OCT dan Late Autumn akan dicetak untuk bulan NOV dan DEC.

public class enum3 {
   
    public enum Months {
         JAN(0),FEB(1),MAR(2),ARP(3),MAY(4),JUN(5),
         JUL(6), AUG(7),SEP(8),OCT(9),NOV(10),DEC(11);

        private int mCode;
       
        //enum constructor
        Months(int mCode) {
            this.mCode = mCode;
        }
       
        //enum method
        public int readMCode() {
            return this.mCode;
        }
       
    }
       
    //main() method
    public static void main(String[] args) {
       
        //Initialize variables
        String s1="",s2="",s3="",s4="",s5="",s6="";
        //Iterating the values of enum
        for (Months month : Months.values()) {
            //Declare enum object
            Months m = month;
            switch(m.readMCode())
            {
                  case 0:
                case 1:
                    if(s1.equals(""))
                        s1=month.toString();
                    else {
                        s1+=" and "+month.toString();
                        System.out.println(s1+" are Winter.");
                    }
                    break;
                case 2:
                case 3:
                    if(s2.equals(""))
                        s2=month.toString();
                    else {
                        s2+=" and "+month.toString();
                        System.out.println(s2+" are Spring.");
                    }
                    break;
                case 4:
                case 5:
                    if(s3.equals(""))
                        s3=month.toString();
                    else {
                        s3+=" and "+month.toString();
                        System.out.println(s3+" are Summer.");
                    }
                    break;
                case 6:
                case 7:
                    if(s4.equals(""))
                        s4=month.toString();
                    else {
                        s4+=" and "+month.toString();
                        System.out.println(s4+" are Rainy Season.");
                    }
                    break;
                case 8:
                case 9:
                    if(s5.equals(""))
                        s5=month.toString();
                    else {
                        s5+=" and "+month.toString();
                        System.out.println(s5+" are Autumn.");
                    }
                    break;
                case 10:
                case 11:
                    if(s6.equals(""))
                        s6=month.toString();
                    else {
                        s6+=" and "+month.toString();
                        System.out.println(s6+" are Late Autumn.");
                    }
                    break;
               }
            }
     }
}

Keluaran:

Output berikut akan muncul setelah mengeksekusi kode di atas.

Kesimpulan:

Ketika kita perlu bekerja dengan data konstan, maka lebih baik menggunakan variabel enum. Perbedaan useran tipe data enum dijelaskan dalam tutorial ini untuk mempelajari manfaat menggunakan tipe enumerasi di Java.

Related Posts