مقدمة
في برمجةنا اليومية ، غالبًا ما تكون هناك "مجموعات بيانات" ، والتي تكون قيمها مستقرة في البرنامج ، والعناصر في "مجموعات البيانات" محدودة. على سبيل المثال ، تشكل سبعة عناصر بيانات من الاثنين إلى الأحد "مجموعة البيانات" الأسبوعية ، وأربعة عناصر بيانات من الربيع والصيف والخريف والشتاء "مجموعة بيانات" في الفصول الأربعة. كيف يمكن استخدام هذه "مجموعات البيانات" هذه في جافا؟ لذلك يأتي التعداد في متناول يدي
التعداد هو في الواقع نوع ، على غرار int و char ، مما يعني أنه يقيد الإدخال عند تحديد المتغيرات. يمكنك فقط تعيين القيم المحددة في ENUM.
تعداد تنفيذ
يوفر JDK5 تنفيذ أنواع java enum ، وهو السكر النحوي أكثر من نوع جديد.
موسم التعداد العام {الربيع ، الصيف ، الخريف ، الشتاء}دعنا نلقي نظرة على كيفية تنفيذ هذا الرمز من خلال أداة فك الإلغاء. الرمز المغلف على النحو التالي:
يمتد موسم الفصل النهائي العام التعداد {موسم ثابت عام [] القيم () {return (season []) $ date.clone () ؛ } قيمة الموسم الثابت العام (سلسلة S) {return (الموسم) enum.valueof (الموسم ، s) ؛ } الموسم الخاص (سلسلة S ، int i) {super (s ، i) ؛ } فصل الربيع العام الثابت. موسم نهائي ثابت عام الصيف ؛ موسم الثابت العام الخريف ؛ شتاء النهائي الثابت العام الشتاء ؛ قيم الموسم النهائي الثابت الخاص [] ؛ ثابت {Spring = New Season ("Spring" ، 0) ؛ الصيف = موسم جديد ("الصيف" ، 1) ؛ الخريف = موسم جديد ("الخريف" ، 2) ؛ الشتاء = موسم جديد ("الشتاء" ، 3) ؛ $ stable = (الموسم الجديد [] {Spring ، Summer ، Autumn ، Winter}) ؛ }} عن طريق فك الرمز ، يمكنك العثور على:
1. Season هو فئة عادية ترث من Enum ويتم تعديلها من خلال الكلمة الرئيسية final لتجنب الميراث.
2. SPRING SUMMER AUTUMN WINTER في التعداد هي حالات ثابتة لفئة Season ويتم تهيئتها في طريقة مُنشئ الطبقة <clinit> .
3. تقوم طريقة values() بإرجاع نسخة من قيم المتغير الخاص $VALUES[] $VALUES[] ، والتي يتم تهيئتها أيضًا في طريقة <clinit> .
كيفية استخدام التعداد
1. وضع Singleton
نحن نعلم بالفعل أن مُنشئ الفئة <clinit> لا يمكن تنفيذه إلا بواسطة مؤشر ترابط واحد خلال مرحلة التهيئة لتحميل الفئة ، لذلك كل مثيل من التعداد يحتوي على نسخة واحدة فقط في كومة Java. هذه الميزة تجعل من السهل على التعداد تنفيذ نمط Singleton. هذا هو بالضبط مدى فعالية مؤلف Java Josh Bloch يدعو إلى استخدام تنفيذ أنماط Singleton.
التعداد العام المفرد {مثيل ؛} 2. استخدم في التبديل
3. الحقول والأساليب المخصصة
بالإضافة إلى الحقول والأساليب الافتراضية في التعداد ، يمكنك التخصيص لمنطق الأعمال.
التعداد العام enumTest {plus (" +") {Override public int bind (int arg1 ، int arg2) {return arg1 + arg2 ؛ }} ، sub (" -") {Override public int bind (int arg1 ، int arg2) {return arg1 - arg2 ؛ }} ؛ عملية السلسلة النهائية ؛ enumTest (سلسلة التشغيل) {this.operation = العملية ؛ } ملخص int bind (int arg1 ، int arg2) ؛}4. تنفيذ الواجهة
تشغيل الواجهة {int عملية (int arg1 ، int arg2) ؛} تعداد التعداد العام تنفيذ عملية {plus (" +") {Override public int (int arg1 ، int arg2) {return arg1 + arg2 ؛ }} ، sub (" -") {Override public int station (int arg1 ، int arg2) {return arg1 - arg2 ؛ }} ؛ عملية السلسلة النهائية ؛ enumTest (سلسلة التشغيل) {this.operation = العملية ؛ }} في التطبيقات العملية ، "+" و "-" يمكن استخدامها كمفاتيح ، بالإضافة إلى value ، وتنفسها مسبقًا في hashmap في hashMap . طريقة الاستخدام المحددة هي كما يلي:
عملية التشغيل = hashmap.get ("+") ؛ int result = operation.bind (1 ، 2) ؛لخص
ما سبق هو كل شيء عن أنواع التعداد في جافا. آمل أنه من خلال مقدمة هذا المقال عن التعدادات في جافا ، قد يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة للتواصل.