การแจงนับเป็นรูปแบบของพารามิเตอร์มาตรฐานเพื่อให้คุณสามารถแทนที่แนวคิดฟัซซี่ที่พารามิเตอร์ประเภท INT อาจทำให้เกิดขึ้นได้อย่างชัดเจน การแจงนับเป็นเหมือนชั้นเรียนและอาร์เรย์โดยไม่คำนึงถึงประเภทที่ไม่ตรงกัน
ในฐานะที่เป็นคำหลักใหม่ที่แนะนำโดย Sun, Enum ดูเหมือนคลาสพิเศษ นอกจากนี้ยังสามารถมีตัวแปรของตัวเองกำหนดวิธีการของตัวเองและใช้อินเทอร์เฟซอย่างน้อยหนึ่งรายการ เมื่อเราประกาศประเภท enum เราควรสังเกตว่าประเภท enum มีลักษณะบางอย่างดังนี้
1. ไม่สามารถมีตัวสร้างสาธารณะและการทำเช่นนั้นสามารถมั่นใจได้ว่ารหัสลูกค้าไม่สามารถสร้างอินสแตนซ์ใหม่ของ enum ได้
2. ค่า enum ทั้งหมดเป็นสาธารณะคงที่สุดท้าย โปรดทราบว่านี่เป็นเพียงค่า enum เท่านั้น เราสามารถกำหนดตัวแปรที่ไม่ใช่เครื่องยนต์อื่น ๆ ได้ทุกประเภทเช่นการกำหนดตัวแปรในคลาสสามัญ ตัวแปรเหล่านี้สามารถทำได้ด้วยตัวดัดแปลงใด ๆ ที่คุณต้องการ
3. Enum ใช้อินเตอร์เฟส java.lang.Comparable โดยค่าเริ่มต้น
4. enum แทนที่วิธี toString ดังนั้นถ้าเราเรียก color.blue.toString () เราจะส่งคืนสตริง "สีน้ำเงิน" โดยค่าเริ่มต้น
5. enum จัดเตรียมวิธีการของวิธีการซึ่งสอดคล้องกับวิธี toString การโทรค่าของ ("สีน้ำเงิน") จะส่งคืน color.blue ดังนั้นเราควรให้ความสนใจกับสิ่งนี้เมื่อเขียนวิธีการ ToString ด้วยตัวเอง กล่าวอีกนัยหนึ่งเราควรเขียนวิธีการที่มีค่าตามใหม่
6. enum ยังให้วิธีการค่าซึ่งช่วยให้คุณสามารถข้ามค่า enum ทั้งหมดได้อย่างง่ายดาย
7. enum ยังมีวิธี oridinal ซึ่งส่งคืนลำดับของค่า enum ในคลาส enum คำสั่งนี้ขึ้นอยู่กับคำสั่งของการประกาศค่า enum ที่นี่ color.red.ordinal () ส่งคืน 0
หลังจากทำความเข้าใจกับคุณสมบัติพื้นฐานเหล่านี้มาดูวิธีการใช้งาน
1. ข้ามค่า enum ทั้งหมด เมื่อรู้ว่ามีวิธีการค่านิยมเราสามารถใช้ foreach loop เพื่อสำรวจค่า enum ด้วยวิธีที่คุ้นเคย
สำหรับ (color c: color.values ()) system.out.println ("ค้นหาค่า:" + c);2. กำหนดวิธีการและตัวแปรใน enum ตัวอย่างเช่นเราสามารถเพิ่มวิธีการสีเพื่อส่งคืนสีแบบสุ่ม
สีของ Enum สาธารณะ {สีแดง, เขียว, สีน้ำเงิน; หมายเลข int คงที่ส่วนตัว = color.values (). ความยาว; สาธารณะสีคงที่ getRandomColor () {long random = system.currentTimeMillis () % จำนวน; สวิตช์ ((int) สุ่ม) {กรณี 0: return color.red; กรณีที่ 1: กลับสีเขียว; กรณีที่ 2: คืนสี BLUE; ค่าเริ่มต้น: return color.red; -จะเห็นได้ว่าไม่มีความแตกต่างระหว่างการกำหนดตัวแปรและวิธีการในประเภท enum และการกำหนดวิธีการและตัวแปรในคลาสสามัญ สิ่งเดียวที่ควรทราบคือตัวแปรและคำจำกัดความของเมธอดจะต้องวางไว้หลังจากคำจำกัดความของค่า enum ทั้งหมดมิฉะนั้นคอมไพเลอร์จะให้ข้อผิดพลาด
3. แทนที่ toString, ค่าของวิธีการ
เรารู้อยู่แล้วว่า enum มีวิธีการเช่น toString, valueof ฯลฯ หลายครั้งที่เราต้องแทนที่วิธีการเริ่มต้นเริ่มต้นดังนั้นเราจะทำ enum ได้อย่างไร? ในความเป็นจริงสิ่งนี้ไม่แตกต่างจากวิธีการเอาชนะ toString ด้วยคลาสธรรมดา
- สตริงสาธารณะ toString () {สวิตช์ (นี่) {เคสสีแดง: return "color.red"; Case Green: return "color.green"; Case Blue: return "color.blue"; ค่าเริ่มต้น: ส่งคืน "Unknow Color"; -ในเวลานี้เราจะเห็นว่าอันที่พิมพ์ออกมาด้วยรหัสการสำรวจก่อนหน้านี้คือ
สีแดงสีเขียว
แทน
สีเขียวสีเขียวแดง
คุณจะเห็นว่า ToString ถูกเขียนทับอย่างแน่นอน โดยทั่วไปเมื่อเขียนทับทอร์ตริงเราควรเขียนทับวิธีการที่มีค่าเพื่อรักษาความสอดคล้องของพวกเขา
4. การใช้ตัวสร้าง
แม้ว่า enum ไม่สามารถมีตัวสร้างสาธารณะ แต่เรายังสามารถกำหนดตัวสร้างส่วนตัวและใช้ภายใน enum ลองใช้ตัวอย่างสี
สีของ Enum สาธารณะ {สีแดง ("นี่คือสีแดง"), สีเขียว ("นี่คือสีเขียว"), สีน้ำเงิน ("นี่คือสีน้ำเงิน"); สตริงส่วนตัว desc; สี (สตริง desc) {this.desc =} สตริงสาธารณะ getDesc () {return this.desc; -ที่นี่เราให้ข้อมูลคำอธิบายสำหรับแต่ละสีจากนั้นกำหนดตัวสร้างเพื่อยอมรับข้อมูลคำอธิบายนี้
ควรสังเกตว่าตัวสร้างไม่สามารถสาธารณะหรือได้รับการคุ้มครองเพื่อให้แน่ใจว่าตัวสร้างสามารถใช้งานภายในเท่านั้นและรหัสไคลเอนต์ไม่สามารถใหม่อินสแตนซ์ของค่า enum ได้ สิ่งนี้ยังสมเหตุสมผลอย่างสมบูรณ์เพราะเรารู้ว่าค่า enum เป็นเพียงค่าคงที่ของสาธารณะคงที่
5. ใช้อินเทอร์เฟซเฉพาะ
เรารู้อยู่แล้วว่า enum สามารถกำหนดตัวแปรและวิธีการ จำเป็นต้องใช้อินเทอร์เฟซและใช้อินเทอร์เฟซเช่นคลาสธรรมดา ฉันจะไม่ยกตัวอย่างที่นี่
6. กำหนดวิธีการแจงนับของคุณเอง
เราเห็นก่อนหน้านี้ว่าบางวิธีสามารถกำหนดไว้สำหรับ enum แต่ในความเป็นจริงเรายังสามารถกำหนดวิธีการสำหรับแต่ละค่า enum ด้วยวิธีนี้ตัวอย่างก่อนหน้าของเราในการเอาชนะ ToString สามารถเขียนใหม่ได้เช่นนี้
สี enum สาธารณะ {สีแดง {Public String ToString () {return "color.red"; }}, สีเขียว {สตริงสาธารณะ toString () {return "color.green"; }}, blue {public String toString () {return "color.blue"; - -การพูดอย่างมีเหตุผลสิ่งนี้ชัดเจนกว่าวิธีการ toString ดั้งเดิมที่ให้ "ทั่วโลก"
โดยทั่วไปแล้ว Enum ซึ่งเป็นรูปแบบใหม่ที่สมบูรณ์หวังว่าจะช่วยให้โปรแกรมเมอร์เขียนรหัสที่ง่ายและเข้าใจง่ายขึ้น
โดยทั่วไปแล้วผู้คนไม่จำเป็นต้องใช้คุณสมบัติขั้นสูงของ enum มิฉะนั้นมันจะขัดกับความตั้งใจดั้งเดิมที่เรียบง่ายและเข้าใจง่าย
บทความข้างต้นพูดสั้น ๆ เกี่ยวกับบทบาทและประโยชน์ของการแจงนับ Jave เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น