إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    Java النوع enum في جافا

    مفهوم النوع enum

    enum هي كلمة محجوزة في جافا, تستخدم لتعريف عدة ثوابت ضمن مجموعة واحدة بشكل منطقي.
    و في النهاية تعتبر هذه المجموعة كنوع جديد من البيانات و فيها عدة قيم محتملة.

    النوع enum مفيد جداً في حال أردت بناء كود مخصص فقط للتعامل مع نوع محدد من القيم و في حال حاول أي مبرمج آخر عدم الإلتزام بنوع البيانات الذي فرضته أنت و قام بتمرير قيم من نوع آخر فإنه يتم تنبيهه مباشرةً قبل تشغيل الكود و في حال أصر على ذلك و قام بتشغيل الكود فإن مترجم لغة جافا سيمنعه وقت التشغيل و يظهر له خطأ.

    بشكل عام, في حال أردت تعريف مجموعة قيم مترابطة يستحيل أن تتبدل فالخيار الأمثل هو تعريف هذه القيم في الأساس بداخل enum.

    أمثلة حول بعض المعلومات الثابتة في الحياة و التي أيضاً تعتبر ثابتة في المنطق هي:

    • فصول السنة ( الخريف, الشتاء, الربيع, الصيف )
    • الإتجاهات ( الشمال - الجنوب - الشرق - الغرب )
    • أيام الأسبوع ( الإثنين - الثلاثاء - الأربعاء إلخ.. )
    • أشهر السنة ( كانون الثاني - شباط - آذار إلخ.. )
    • الجنس ( ذكر - أنثى )

    عند التعامل مع هذا النوع الثابت من البيانات و الذي لا نريد لأحد أن يعبث به فإننا نستخدم النوع enum و هذا ما سنراه لاحقاً في الأمثلة.

    مصطلحات تقنية

    الـ enum يقال له تعداد في اللغة العربية حيث نضع فيه مجموعة عناصر.

    التعامل مع النوع enum

    التعامل مع الـ enum يشبه كثيراً التعامل مع الكلاس المعرف كـ final static حيث لا يمكن إنشاء كائنات منه و يمكن الوصول بشكل مباشر للثوابت الموضوعة فيه.


    نقاط مهمة حول النوع enum

    • يزيد أمان أنواع البيانات التي سيتم التعامل معها.
    • يمكن إستخدامه في الجملة switch.
    • يمكن تعريفه ضمن ملف خاص مثل الكلاس و يمكن تعريفه ضمن كلاس.
    • كل ثابت فيه, عبارة عن كائن من نفس نوعه و يعتبر نوعه public final static.
    • يمكنه أن يحتوي على متغيرات, دوال, كونستركتورات.
    • لا يمكن إنشاء كائنات منه و لا داعي لذلك أصلاً لأنه يمكن الوصول لثوابته بشكل مباشر.
    • عند تعريف كونستركتور فيه فإنه يجب تعريفه كـ private لأنه لا يمكن إنشاء كائنات منه و هذا أمر منطقي.
    • يمكنه أن يفعل implements لإنترفيس أو أكثر.
    • لا يمكنه أن يرث من أي كلاس لأنه في الواقع يرث من كلاس إسمه Enum.
    • يمكنك إستدعاء الدالة values() من أي enum للحصول على مصفوفة من نفس نوعه و فيها نسخة من كل قيمه.


    معلومة تقنية

    كل ثابت تضعه في الـ enum يتم إعطاؤه رقم Index ابتداءاً من الرقم 0 يشير لموقعه فيه مثل المصفوفة.
    فمثلاً العنصر الأول يعطى Index رقم 0 و العنصر الثاني يعطى Index رقم 1 و هكذا.

    يمكنك معرفة رقم الـ Index المعطى لأي ثابت في الـ enum بواسطة الدالة ordinal() و لكنك على الأغلب لن تحتاج إلى ذلك.

    أمثلة شاملة حول النوع enum


    المثال الأول

    ستتعلم من المثال التالي كيف تقوم بتعريف enum بداخل كلاس بالإضافة إلى معرفة كيف يمكن الوصول للثوابت الموجودة فيه و معرفة Index الثابت.

    شاهد المثال »



    المثال الثاني

    ستتعلم من المثال التالي كيف تقوم بعرض جميع الثوابت الموجودة في الـ enum بالإعتماد على الدالة values() و الحلقة for each.

    شاهد المثال »



    المثال الثالث

    ستتعلم من المثال التالي كيف تقوم بتخزين ثابت موجود في enum بداخل كائن من نفس نوعه.

    شاهد المثال »



    المثال الرابع

    ستتعلم من المثال التالي كيف تقوم بتحديد قيمة كل ثابت في الـ enum.

    شاهد المثال »



    المثال الخامس

    ستتعلم من المثال التالي كيف تضع أكثر من قيمة لكل ثابت في الـ enum.

    شاهد المثال »



    المثال السادس

    ستتعلم من المثال التالي كيف تعرف قيمة الثابت الذي إختاره المستخدم من الـ enum بواسطة الجملة switch.

    شاهد المثال »



    المثال السابع

    ستتعلم من المثال التالي كيف تقوم بتعريف enum في ملف خاص بطريقتين.
    فعلياً, ستتعلم كيف تستطيع إنشاء كلاس عادي و من ثم تحويله لـ enum. و ستتعلم كيف تستطيع إنشاء enum مباشرةً في برنامج NetBeans.

    شاهد المثال »



    المثال الثامن

    ستتعلم من المثال التالي أهمية الـ enum في حماية الكود خاصةً إذا كنت تعمل ضمن فريق و تريد أن يلتزم زملاؤك بالأنواع التي يمكن إستخدامها.

    شاهد المثال »

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب