JDK1.5 แนะนำประเภทใหม่ - การแจงนับ แม้ว่าจะถือว่าเป็นฟังก์ชั่น "เล็ก" ในชวา แต่มันก็นำความสะดวกสบาย "ใหญ่" มาสู่การพัฒนาของฉัน
การใช้ 1: คงที่
ก่อน jdk1.5 เรากำหนดค่าคงที่: fianl คงที่สาธารณะ ...... ตอนนี้ด้วย enum คุณสามารถจัดกลุ่มค่าคงที่ที่เกี่ยวข้องเป็นประเภท enum และ enums ให้วิธีการมากกว่าค่าคงที่
สี enum สาธารณะ {สีแดง, เขียว, ว่างเปล่า, สีเหลือง}การใช้งาน 2: สวิตช์
คำสั่งสวิตช์ก่อน jdk1.6 รองรับเฉพาะ int, char และ enum การใช้ enums สามารถทำให้รหัสของเราอ่านได้มากขึ้น
สัญญาณ enum {สีเขียว, สีเหลือง, สีแดง} การจราจรระดับสาธารณะ {สัญญาณสี = signalred; การเปลี่ยนแปลงโมฆะสาธารณะ () {สวิตช์ (สี) {เคสสีแดง: สี = สัญญาณไฟ; หยุดพัก; เคสสีเหลือง: สี = ส่งสัญญาณ; หยุดพัก; Case Green: color = signalyellow; หยุดพัก; -การใช้งาน 3: เพิ่มวิธีการใหม่ใน enum
หากคุณวางแผนที่จะปรับแต่งวิธีการของคุณเองคุณต้องเพิ่มเครื่องหมายอัฒภาคเมื่อสิ้นสุดลำดับอินสแตนซ์ enum และ Java ต้องการให้อินสแตนซ์ enum ต้องกำหนดก่อน
สี enum สาธารณะ {สีแดง ("สีแดง", 1), สีเขียว ("สีเขียว", 2), ว่างเปล่า ("สีขาว", 3), เยลโล ("เหลือง", 4); // สมาชิกตัวแปรชื่อสตริงส่วนตัว; ดัชนี INT ส่วนตัว // วิธีการสร้างสีส่วนตัว (ชื่อสตริง, ดัชนี int) {thisname = name; thisIndex = ดัชนี; } // วิธีปกติสตริงคงที่สาธารณะ getName (ดัชนี int) {สำหรับ (color c: colorValues ()) {ถ้า (cgetIndex () == ดัชนี) {return cname; }} return null; } // รับวิธีการตั้งค่าสตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {thisName = ชื่อ; } public int getIndex () {return index; } โมฆะสาธารณะ setIndex (ดัชนี int) {thisIndex = index; -การใช้งาน 4: วิธีการเขียนทับการแจงนับ
นี่คือตัวอย่างของวิธี ToString () แทนที่
สี enum สาธารณะ {สีแดง ("สีแดง", 1), สีเขียว ("สีเขียว", 2), ว่างเปล่า ("สีขาว", 3), เยลโล ("เหลือง", 4); // สมาชิกตัวแปรชื่อสตริงส่วนตัว; ดัชนี INT ส่วนตัว // วิธีการสร้างสีส่วนตัว (ชื่อสตริง, ดัชนี int) {thisname = name; thisIndex = ดัชนี; } // วิธีการเขียนทับ @Override สตริงสาธารณะ toString () {ส่งคืน thisIndex+"_"+ชื่อนี้; -การใช้งาน 5: ใช้อินเทอร์เฟซ
enums ทั้งหมดได้รับการสืบทอดจากคลาส java.lang.enum เนื่องจาก Java ไม่รองรับการสืบทอดหลายครั้งวัตถุ Enum จึงไม่สามารถสืบทอดคลาสอื่นได้
พฤติกรรมการเชื่อมต่อสาธารณะ {void print (); สตริง getInfo (); } public enum สีใช้พฤติกรรม {สีแดง ("สีแดง", 1), สีเขียว ("สีเขียว", 2), ว่างเปล่า ("ขาว", 3), เยลโล ("เหลือง", 4); // สมาชิกตัวแปรชื่อสตริงส่วนตัว; ดัชนี INT ส่วนตัว // วิธีการสร้างสีส่วนตัว (ชื่อสตริง, ดัชนี int) {thisname = name; thisIndex = ดัชนี; } // เมธอดอินเตอร์เฟส @Override สตริงสาธารณะ getInfo () {return thisname; } // เมธอดอินเตอร์เฟส @Override โมฆะสาธารณะพิมพ์ () {systemoutprintln (thisindex+":"+thisname); -การใช้งาน 6: ใช้อินเทอร์เฟซเพื่อจัดระเบียบการแจงนับ
ส่วนต่อประสานอาหารสาธารณะ {Enum Coffee ใช้อาหาร {black_coffee, decaf_coffee, latte, cappuccino} enum ของหวานใช้อาหาร {ผลไม้, เค้ก, เจลาโต้}}}การใช้งาน 7: เกี่ยวกับการใช้คอลเลกชันการแจงนับ
java.util.enumset และ java.util.enummap เป็นสองคอลเลกชัน enum enumset ทำให้มั่นใจได้ว่าองค์ประกอบในคอลเลกชันจะไม่ถูกทำซ้ำ กุญแจสำคัญใน enummap เป็นประเภท enum และค่าสามารถเป็นประเภทใดก็ได้ ฉันจะไม่อธิบายรายละเอียดเกี่ยวกับการใช้สองชุดนี้ที่นี่คุณสามารถอ้างถึงเอกสาร JDK
สำหรับรายละเอียดการใช้งานและหลักการของการแจงนับโปรดดูที่:
การอ้างอิง: "ThinkingInjava" ฉบับที่สี่ //www.vevb.com/books/75540.html
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น