Panduan Pemula untuk Java eNum – Mengapa dan untuk Apa Saya Harus Menggunakan Enum? Contoh Java Enum
Diterbitkan: 2019-04-23 Enum adalah daftar constants
seperti variabel yang tidak dapat diubah. Pernahkah Anda mendengar Final keyword
? Ini seperti itu.
Saat Anda membutuhkan daftar nilai yang telah ditentukan sebelumnya yang mewakili beberapa jenis data numerik atau tekstual, Anda harus menggunakan enum. Misalnya, dalam permainan catur Anda dapat mewakili berbagai jenis bidak sebagai enum:
1 2 3 4 5 6 7 8 |
enum ChessPiece { PAWN , ROOK , KNIGHT , BISHOP , QUEEN , KING ; } |
Anda harus selalu menggunakan enum ketika variabel (terutama parameter metode) hanya dapat mengambil satu dari sekumpulan kecil nilai yang mungkin. Contohnya adalah hal-hal seperti konstanta tipe (status kontrak: "permanen", "temp", "magang"), atau flag ("eksekusi sekarang", "tunda eksekusi").
Jika Anda menggunakan enum alih-alih bilangan bulat (atau kode String), Anda meningkatkan pemeriksaan waktu kompilasi dan menghindari kesalahan dari meneruskan konstanta yang tidak valid, dan Anda mendokumentasikan nilai mana yang legal untuk digunakan.
Jawa Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public enum Company { EBAY , PAYPAL , GOOGLE , YAHOO , ATT } Company cName ; public CrunchifyEnumExample ( Company cName ) { this . cName = cName ; } public void companyDetails ( ) { switch ( cName ) { case EBAY : System . out . println ( "EBAY: Biggest Market Place in the World." ) ; break ; case PAYPAL : System . out . println ( "PAYPAL: Simplest way to manage Money." ) ; break ; case GOOGLE : case YAHOO : System . out . println ( "YAHOO: 1st Web 2.0 Company." ) ; break ; default : System . out . println ( "DEFAULT: Google - biggest search giant.. ATT - my carrier provider.." ) ; break ; } } public static void main ( String [ ] args ) { CrunchifyEnumExample ebay = new CrunchifyEnumExample ( Company . EBAY ) ; ebay . companyDetails ( ) ; CrunchifyEnumExample paypal = new CrunchifyEnumExample ( Company . PAYPAL ) ; paypal . companyDetails ( ) ; CrunchifyEnumExample google = new CrunchifyEnumExample ( Company . GOOGLE ) ; google . companyDetails ( ) ; CrunchifyEnumExample yahoo = new CrunchifyEnumExample ( Company . YAHOO ) ; yahoo . companyDetails ( ) ; CrunchifyEnumExample att = new CrunchifyEnumExample ( Company . ATT ) ; att . companyDetails ( ) ; } } |
Keluaran:
1 2 3 4 5 6 7 |
EBAY : Biggest Market Place in the World . PAYPAL : Simplest way to manage Money . YAHOO : 1st Web 2.0 Company . YAHOO : 1st Web 2.0 Company . DEFAULT : Google - biggest search giant . . ATT - my carrier provider . . Process finished with exit code 0 |
Beberapa poin yang sangat penting di Java Enum:
Poin-1
Semua enum secara implisit memperluas java.lang.Enum
. Karena Java tidak mendukung pewarisan berganda, enum tidak dapat memperluas hal lain.
Poin-2
Enum in Java are type-safe:
Enum memiliki ruang nama sendiri. Itu berarti enum Anda akan memiliki tipe misalnya "Perusahaan" dalam contoh di bawah ini dan Anda tidak dapat menetapkan nilai apa pun selain yang ditentukan dalam Konstanta Enum.
1 2 3 4 5 6 |
public enum Company { EBAY , PAYPAL , GOOGLE , YAHOO , ATT } Company cName = Company . EBAY ; cName = 1 ; // Compilation Error |

Poin-3
Anda dapat menentukan nilai konstanta enum pada waktu pembuatan. MyEnum.values()
mengembalikan array nilai MyEnum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package com . crunchify . tutorial ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public enum Company { EBAY ( 30 ) , PAYPAL ( 10 ) , GOOGLE ( 15 ) , YAHOO ( 20 ) , ATT ( 25 ) ; private int value ; private Company ( int value ) { this . value = value ; } } public static void main ( String [ ] args ) { for ( Company cName : Company . values ( ) ) { System . out . println ( "Company Value: " + cName . value + " - Company Name: " + cName ) ; } } } |
Keluaran:
1 2 3 4 5 |
Company Value : 30 - Company Name : EBAY Company Value : 10 - Company Name : PAYPAL Company Value : 15 - Company Name : GOOGLE Company Value : 20 - Company Name : YAHOO Company Value : 25 - Company Name : ATT |
Poin-4
Konstanta enum secara implisit statis dan final dan tidak dapat diubah setelah dibuat.
Poin-5
Enum dapat dibandingkan dengan aman menggunakan:
- Pernyataan Switch-Case
- == Operator
- .equals() metodeSilakan ikuti tutorial lengkap.
1 2 3 4 |
Company eBay = Company . EBAY ; if ( eBay == Company . EBAY ) { log . info ( "enum in java can be compared using ==" ) ; } |
Poin-6
Anda tidak dapat membuat instance enum dengan menggunakan operator baru di Java karena konstruktor Enum di Java hanya dapat bersifat pribadi dan konstanta Enum hanya dapat dibuat di dalam Enum itu sendiri.
Poin-7
Instance Enum di Java dibuat ketika konstanta Enum pertama kali dipanggil atau dirujuk dalam kode.
Poin-8
Enum menentukan daftar nilai konstanta yang ditetapkan untuk suatu tipe.
Poin-9
Enum dapat dideklarasikan di luar atau di dalam kelas, tetapi BUKAN dalam suatu metode.
Poin-10
Enum yang dideklarasikan di luar kelas TIDAK boleh ditandai static, final, abstract, protected, atau private
Poin-11
Enum dapat berisi konstruktor, metode, variabel, dan badan kelas konstan.
Poin-12
konstanta enum dapat mengirim argumen ke konstruktor enum, menggunakan sintaks BIG(8), di mana int literal 8 diteruskan ke konstruktor enum.
Poin-13
konstruktor enum dapat memiliki argumen, dan dapat kelebihan beban.
Poin-14
konstruktor enum TIDAK PERNAH dapat dipanggil secara langsung dalam kode. Mereka selalu dipanggil secara otomatis ketika enum diinisialisasi.
Poin-15
Titik koma di akhir deklarasi enum adalah opsional.
Ini adalah hukum:
- enum Foo { SATU, DUA, TIGA}
- enum Foo { SATU, DUA, TIGA};
Contoh Java eNUM sederhana lainnya:
Enum adalah daftar konstanta. Saat Anda membutuhkan daftar nilai yang telah ditentukan sebelumnya yang mewakili beberapa jenis data numerik atau tekstual, Anda harus menggunakan enum.
Anda harus selalu menggunakan enum ketika variabel (terutama parameter metode) hanya dapat mengambil satu dari sekumpulan kecil nilai yang mungkin. Contohnya adalah hal-hal seperti konstanta tipe (status kontrak: "permanen", "temp", "magang"), atau flag ("eksekusi sekarang", "tunda eksekusi").
Jika Anda menggunakan enum alih-alih bilangan bulat (atau kode String), Anda meningkatkan pemeriksaan waktu kompilasi dan menghindari kesalahan dari meneruskan konstanta yang tidak valid, dan Anda mendokumentasikan nilai mana yang legal untuk digunakan.
Di antara, penggunaan enum yang berlebihan mungkin berarti bahwa metode Anda melakukan terlalu banyak (sering kali lebih baik untuk memiliki beberapa metode terpisah, daripada satu metode yang membutuhkan beberapa flag yang mengubah fungsinya), tetapi jika Anda harus menggunakan flag atau kode tipe, enum adalah cara untuk pergi.
Ini adalah Contoh Java eNum yang sangat sederhana
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
package com . crunchify . tutorials ; /** * @author Crunchify.com */ public enum CrunchifyEnumCompany { GOOGLE ( "G" ) , YAHOO ( "Y" ) , EBAY ( "E" ) , PAYPAL ( "P" ) ; private String companyLetter ; private CrunchifyEnumCompany ( String s ) { companyLetter = s ; } public String getCompanyLetter ( ) { return companyLetter ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com . crunchify . tutorials ; import com . crunchify . tutorials . CrunchifyEnumCompany ; /** * @author Crunchify.com */ public class CrunchifyEnumExample { public static void main ( String [ ] args ) { System . out . println ( "Get enum value for Comapny 'eBay': " + CrunchifyEnumCompany . EBAY . getCompanyLetter ( ) ) ; } } |
Keluaran:
1 |
Get enum value for Comapny 'eBay' : Value : E |