1. Perbedaan antara enumerasi dan konstanta statis
Ketika datang ke enumerasi, pertama -tama kita berpikir tentang bagaimana hal itu berbeda dari konstanta yang dimodifikasi oleh string akhir statis publik.
Saya akan mengutip dua keunggulan enumerasi:
1. Pastikan jenis keamanan: Penelepon tidak dapat melewati nilai int atau string sesuka hati;
2. Kode ini sangat mudah dibaca;
Misalnya:
Dalam pemrograman aktual, seringkali ada "set data" seperti itu, yang nilainya stabil dalam program, dan elemen -elemen dalam "set data" terbatas. Misalnya, empat elemen data musim semi, musim panas, musim gugur dan musim dingin membentuk "kumpulan data" dari empat musim.
Anda telah menulis metode mendapatkan (musim string), dan input tipe Anda hanya bisa berupa tipe string, dan string hanya bisa (musim semi, musim panas, musim gugur, musim dingin).
Kali ini. Anda menulis empat konstanta string
Public Class Common {Public Static Final String Spring = "Spring"; Musim string final statis publik = "musim panas"; Public Static Final String Summer = "Autumn"; Publik Static Final String Autumn = "Winter";}Menempatkan Get (Common.season) dalam metode GET memang menempatkan "musim semi" di dalamnya, tetapi pada saat ini Anda akan menemukan bahwa ada bahaya tersembunyi di sini. Anda mendapatkan (season string), bagaimanapun, jenis string diletakkan. Jika kolega baru atau kolega yang tidak mendapat informasi tidak tahu bahwa Anda hanya dapat menempatkan "Musim Semi, Musim Panas, Musim Gugur, dan Musim Dingin" dalam metode ini. Ini menempatkan string seperti get ("xiaoxiao"). Pada saat ini, itu tidak akan melaporkan kesalahan selama periode kompilasi. Hanya setelah berlari, itu akan menemukan bahwa itu salah.
Untuk mencegah bahaya tersembunyi di atas, enumerasi muncul
Public Enum Season {Spring ("Spring"), Summer ("Summer"), Autumn ("Autumn"), Winter ("Winter"); ....}Pada saat ini, kami memodifikasi transfer parameter metode GET dan mengubahnya menjadi (musim musim). Pada saat ini, kami menambahkan Get (Season.spring), yang dapat memastikan bahwa hanya beberapa parameter yang dilewati.
2. Memahami enumerasi
Pertama -tama, kita harus jelas. Bahkan, pencacahan juga merupakan kelas kelas. Saya akan menulis enum untuk dipahami.
// Kami memperlakukan enum sebagai musim enum publik kelas umum {musim semi (1, "musim semi"), musim panas (2, "musim panas"), musim gugur (3, "musim gugur"), musim dingin (4, "musim dingin"); // Yang terakhir di sini harus menjadi titik koma, jika tidak, kesalahan akan dilaporkan/ *kita dapat memahaminya sebagai *musim semi final statis publik musim semi = musim baru (1, musim semi); *Musim panas akhir musim statis public = musim baru (2, musim panas); *Musim akhir musim statis musim gugur = musim baru (3, musim gugur); *Musim musim dingin final statis publik = musim baru (4, musim dingin); * Karena ini adalah objek, mudah untuk dipahami di bawah ini*//** 1. Ada dua parameter dalam objek di atas, jadi harus ada konstruktor jenis ini di bawah ini* 2. Ini pribadi, karena tidak dapat menjadi objek baru*/ musim pribadi (kode int, nama string) {this.name = name; this.code = kode; } // Atribut objek nama string pribadi; Kode int pribadi; // metode untuk mendapatkan properti objek string publik getName () {return this.name; } public String getCode () {return this.name; } // Dapatkan objek melalui kode, kita dapat memperoleh properti lain dari objek decode musim statis public (kode int) {musim musim = null; untuk (tipe musim: season.values ()) {if (type.code == kode) {season = type; merusak; }} return season; } // metode ulang-tostring string publik toString () {return this.name; }}Contoh di atas menjelaskan enumerasi dengan sangat baik. Tidak ada bedanya dengan kelas biasa. Itu hanya menggunakan cara lain untuk membuat beberapa objek dengan atribut. Ini juga membutuhkan konstruktor dengan atribut, dan itu saja.
Berikut adalah beberapa fitur enumerasi:
1. Ia tidak dapat memiliki konstruktor publik, dan melakukannya dapat memastikan bahwa kode klien tidak dapat membuat instance baru dari enum.
2. Pencacahan tidak dapat mewarisi kelas lain karena mewarisi java.lang.enum secara default.
3. Alamat nilai konstan unik, dan Anda dapat menggunakan == untuk secara langsung membandingkannya, dan kinerjanya akan ditingkatkan.
4. Enum juga menyediakan metode nilai, yang memungkinkan Anda untuk dengan mudah melintasi semua nilai enum.
5. Enum juga memiliki metode oridinal, yang mengembalikan urutan nilai enum di kelas enum, yang tergantung pada urutan deklarasi nilai enum.
3. Penggunaan enumerasi yang umum
Tipe Pertama: Pergantian Aplikasi
Buat enumerasi terlebih dahulu:
Publik enum Common {Insert, Modify, Delete} // Karena ini adalah objek tanpa parameter, konstruktor default sistem dapat digunakan. Tidak perlu menulis atribut dan metode.Menulis kode implementasi
Public Class Commonils {public static void getType (Common Common) {Common C = Common; switch (c) {case insert: System.out.println ("Insert Operation"); merusak; case Modify: System.out.println ("Configure Operation"); merusak; hapus kasus: System.out.println ("Hapus Operasi"); merusak; }} public static void main (string [] args) {getType (common.delete); // Output Latar Belakang: Hapus Operasi}}Penggunaan kedua adalah untuk mendapatkan nilai nilai melalui nilai kunci untuk mendapatkan nilai lainnya
Kelas Pencacahan
Musim enum publik {Spring (1, "Spring", "Spring Kite Flying in Spring"), Summer (2, "Summer", "Swimming in Summer"), Autumn (3, "Autumn", "Autumn Outing in Autumn"), Winter (4, "Winter", "Winter" Code, nama string, string bz) {this.code ini. Nama Privat BZ;Kelas tes
Oke, saya akan menulis begitu banyak, dan saya akan mengenal lebih banyak mendalam jika saya membutuhkannya di masa depan. Terima kasih atas dukungan Anda ke wulin.com.