مقدمة
في الدرس السابق تعرفنا على الواجهات (Interfaces)، وعرفنا كيف تساعد على تحديد سلوك مشترك بين الفئات.
في هذا الدرس سنتعرف على كلمتين مهمتين في Java وهما static وfinal.
تستخدم كل واحدة منهما لغرض مختلف، وفهمهما مهم عند كتابة برامج Java منظمة.
---
أولًا: الكلمة المفتاحية static
تستخدم static عندما نريد أن يكون العنصر مرتبطًا بالفئة نفسها بدلًا من كل كائن يتم إنشاؤه منها.
المتغيرات static
عندما يكون المتغير static، تكون هناك نسخة واحدة منه مرتبطة بالفئة، بدلًا من إنشاء نسخة منفصلة لكل كائن.
وهذا مفيد عندما تكون هناك قيمة مشتركة بين جميع الكائنات.
الدوال static
يمكن أيضًا جعل الدوال static.
الدالة static يمكن استدعاؤها باستخدام اسم الفئة دون الحاجة إلى إنشاء كائن منها.
ولهذا تستخدم كثيرًا في الوظائف التي لا تعتمد على بيانات كائن محدد.
---
ثانيًا: الكلمة المفتاحية final
تستخدم final لمنع إجراء تغييرات معينة بعد تعريف العنصر.
ويختلف تأثيرها حسب المكان الذي تستخدم فيه.
المتغيرات final
عند استخدام final مع متغير، لا يمكن تغيير قيمة المتغير بعد إعطائه قيمة نهائية.
وهذا يجعلها مناسبة للقيم التي يجب أن تبقى ثابتة.
الدوال final
عند استخدام final مع دالة، لا يمكن للفئات المشتقة إعادة تعريف هذه الدالة.
وهذا يسمح بمنع تغيير سلوك معين في الفئات التي ترث من الفئة الأساسية.
الفئات final
يمكن أيضًا استخدام final مع الفئات.
الفئة التي يتم تعريفها باستخدام final لا يمكن لفئة أخرى أن ترث منها.
---
الفرق بين static وfinal
رغم إمكانية استخدام الكلمتين معًا، فإن لكل واحدة منهما وظيفة مختلفة:
static تعني أن العنصر مرتبط بالفئة نفسها وليس بكل كائن بشكل منفصل.
final تعني أن العنصر لا يمكن تغييره أو إعادة تعريفه وفقًا لمكان استخدام الكلمة.
---
استخدام static وfinal معًا
يمكن الجمع بين الكلمتين لإنشاء قيم ثابتة مشتركة بين جميع الكائنات.
وهذا شائع في Java عند تعريف الثوابت التي يحتاج إليها أكثر من جزء في البرنامج.
---
استخدامهما في المشاريع
تستخدم static وfinal في العديد من المشاريع، مثل:
تطبيقات الهواتف
الألعاب
الأنظمة الإدارية
التطبيقات المكتبية
المشاريع البرمجية الكبيرة
---
فوائد static وfinal
من أهم الفوائد:
تنظيم البيانات المشتركة
إنشاء قيم ثابتة
منع التعديلات غير المرغوبة
التحكم في الوراثة وإعادة تعريف الدوال
تحسين تصميم البرنامج
---
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
الخلط بين static وfinal
محاولة تغيير متغير final
محاولة إنشاء وراثة من فئة final
استخدام static لكل شيء دون الحاجة إليه
عدم فهم الفرق بين عناصر الكائن وعناصر الفئة
---
ملخص الدرس
تعرفنا في هذا الدرس على static وfinal في Java، وعرفنا أن static تجعل العنصر مرتبطًا بالفئة، بينما تساعد final على منع تغيير المتغيرات أو إعادة تعريف الدوال أو الوراثة من بعض الفئات.
في الدرس الثالث والثلاثون سنتعرف على معالجة الملفات (File Handling) في Java، وسنفهم كيف يمكن للبرنامج إنشاء الملفات وقراءتها وكتابتها بطريقة منظمة.



