1. الفرق بين التعداد والثوابت الثابتة
عندما يتعلق الأمر بالتعداد ، نفكر أولاً في كيفية اختلافها عن الثوابت التي تم تعديلها بواسطة السلسلة النهائية الثابتة العامة.
سأستشهد بمزايز التعداد:
1. تأكد من سلامة النوع: لا يمكن للمتصل تمرير قيمة int أو سلسلة في الإرادة ؛
2. الكود قابل للقراءة للغاية ؛
على سبيل المثال:
في البرمجة الفعلية ، غالبًا ما تكون هناك "مجموعات بيانات" ، والتي تكون قيمها مستقرة في البرنامج ، والعناصر في "مجموعات البيانات" محدودة. على سبيل المثال ، تشكل عناصر البيانات الأربعة في الربيع والصيف والخريف والشتاء "مجموعة البيانات" في الفصول الأربعة.
لقد كتبت الطريقة GET (موسم السلسلة) ، ويمكن أن يكون النوع الذي إدخاله فقط نوع السلسلة ، ويمكن أن تكون السلسلة فقط (الربيع ، الصيف ، الخريف ، الشتاء).
هذه المرة. تكتب أربعة ثوابت سلسلة
الطبقة العامة المشتركة {public static Final String Spring = "Spring" ؛ سلسلة نهائية ثابتة للموسم = "الصيف" ؛ السلسلة النهائية الثابتة العامة = "الخريف" ؛ السلسلة النهائية الثابتة العامة الخريف = "الشتاء" ؛}وضع Get (شائع) في طريقة GET هو بالفعل وضع "الربيع" فيه ، ولكن في هذا الوقت ستجد أن هناك خطرًا خفيًا هنا. يمكنك الحصول على (موسم السلسلة) ، بعد كل شيء ، يتم وضع نوع السلسلة. إذا كان زميل جديد أو زميل غير مطلع لا يعرف أنه يمكنك فقط وضع "الربيع والصيف والخريف والشتاء" في هذه الطريقة. يضع سلسلة مثل GET ("Xiaoxiao"). في هذا الوقت ، لن يبلغ عن خطأ خلال فترة التجميع. فقط بعد الجري ، سيجد أنه من الخطأ.
من أجل منع المخاطر المخفية أعلاه ، يظهر التعداد
موسم التعداد العام {Spring ("Spring") ، Summer ("Summer") ، الخريف ("الخريف") ، الشتاء ("الشتاء") ؛ ....}في هذا الوقت ، نقوم بتعديل نقل المعلمة لطريقة الحصول على GET وتغييره للحصول على (موسم الموسم). في هذا الوقت ، نضيف GET (Season.spring) ، والتي يمكن أن تضمن أن بعض المعلمات التي تم تمريرها فقط.
2. فهم التعداد
بادئ ذي بدء ، نحن بحاجة إلى أن نكون واضحين. في الواقع ، التعداد هو أيضا الطبقة الطبقة. سأكتب التعداد لفهم.
// نتعامل مع التعدادات كموسم شائع من التعداد العام {Spring (1 ، "Spring") ، Summer (2 ، "Summer") ، Autumn (3 ، "Autumn") ، Winter (4 ، "Winter") ؛ // يجب أن يكون آخر واحد هنا هو فاصلة فنية ، وإلا سيتم الإبلاغ عن خطأ/ *يمكننا أن نفهمه على أنه *موسم نهائي عام ثابت = موسم جديد (1 ، ربيع) ؛ *الموسم الثابت العام الصيف = موسم جديد (2 ، الصيف) ؛ *الموسم الثابت العام الخريف = موسم جديد (3 ، الخريف) ؛ *الموسم الثابت العام في فصل الشتاء = موسم جديد (4 ، فصل الشتاء) ؛ * نظرًا لأنه كائن ، فمن السهل فهمه أدناه*//** 1. هناك معلمتان في الكائن أعلاه ، لذلك يجب أن يكون هناك مُنشئ من هذا النوع أدناه* 2. هذا خاص ، لأنه لا يمكن أن يكون كائنًا جديدًا*/ موسم خاص (رمز int ، اسم السلسلة) {this.name = name ؛ this.code = رمز ؛ } // سمات اسم السلسلة الخاصة الكائن ؛ رمز int الخاص ؛ // طرق للحصول على خصائص الكائن public string getName () {return this.name ؛ } السلسلة العامة getCode () {return this.name ؛ } // احصل على الكائن من خلال الكود ، يمكننا الحصول على خصائص أخرى من Decode season static static الكائن (int code) {season season = null ؛ لـ (نوع الموسم: season.values ()) {if (type.code == code) {season = type ؛ استراحة؛ }} موسم العودة ؛ } // طريقة إعادة التوصل إلى الأسلوب العام tostring () {return this.name ؛ }}يشرح المثال أعلاه التعداد جيدًا. لا يختلف عن الطبقات العادية. إنه يستخدم فقط طريقة أخرى لإنشاء العديد من الكائنات ذات السمات. هذا يتطلب أيضًا مثل هذا المُنشئ ذي السمات ، وهذا كل شيء.
فيما يلي بعض ميزات التعداد:
1. لا يمكن أن يكون لها مُنشئ عام ، والقيام بذلك يمكن أن يضمن أن رمز العميل لا يمكنه إنشاء مثيل جديد من التعداد.
2. التعداد لا يمكن أن يرث فئات أخرى لأنه يرث java.lang.enum بشكل افتراضي.
3. عنوان القيمة الثابتة فريد من نوعه ، ويمكنك استخدام == لمقارنتها مباشرة ، وسيتم تحسين الأداء.
4. يوفر Enum أيضًا طريقة القيم ، والتي تتيح لك اجتياز جميع قيم التعداد بسهولة.
5. ENUM له أيضًا طريقة oridinal ، والتي تُرجع ترتيب قيم التعداد في فئة التعداد ، والتي تعتمد على ترتيب إعلان قيمة التعداد.
3. الاستخدام الشائع للتعداد
النوع الأول: التبديل تطبيق
إنشاء تعداد أولاً:
التعداد العام المشترك {insert ، modify ، delete} // لأن هذا كائن بدون معلمات ، يمكن استخدام مُنشئ النظام الافتراضي. ليست هناك حاجة لكتابة سمات وطرق.كتابة رمز التنفيذ
CommonUtils الفئة العامة {public static void gettype (شائع مشترك) {common c = common ؛ Switch (c) {case insert: system.out.println ("insert Operation") ؛ استراحة؛ تعديل الحالة: system.out.println ("تكوين العملية") ؛ استراحة؛ حذف الحالة: system.out.println ("Delete Operation") ؛ استراحة؛ }} public static void main (string [] args) {gettype (common.delete) ؛ // إخراج الخلفية: حذف التشغيل}}الاستخدام الثاني هو الحصول على قيمة القيمة من خلال القيمة الرئيسية للحصول على قيم أخرى
فئة التعداد
موسم التعداد العام {Spring (1 ، "Spring" ، "Spring Kite Flying in Spring") ، Summer (2 ، "Summer" ، "Swimming in Summer") ، Autumn (3 ، "Autumn" ، "Autumn Outing in Autumn") ، Winter (4 ، name string bz ؛فئة الاختبار
حسنًا ، سأكتب الكثير ، وسأتعرف على المزيد من التعمق إذا كنت بحاجة إليه في المستقبل. شكرا لك على دعمك إلى wulin.com.