وليد الشهري
وليد الشهري

@Waleed_S_7

8 تغريدة 26 قراءة Apr 02, 2022
تتأسس البرمجة كائنيّة التوجّه (OOP) على عدد من المفاهيم المهمّة، منها ما يُعرَف بـ "الكبسلة" (encapsulation)، وتُعنى بتجميع الخصائص (attributes) والدوال (methods) ذات العلاقة داخل "كلاس" واحد (يمثّل كبسولة)، ثم ضبط آليّة الوصول إليها ضمن عدد من المستويات، ولتحقيق ذلك..
فقد ظهر ما يُعرَف بـ "محددات الوصول" (access modifiers)، وهي عبارة عن كلمات محجوزة للبرنامج (keywords)، يحدّد كلٌّ منها مدى معيّن من صلاحيّات الوصول إلى "الكلاس" و/أو خصائصه (attributes) و/أو دوالّه (methods)، وهناك ثلاثة مصطلحات تُعَد أبرز أنواع محدّدات الوصول الشاملة، وهي:
1- public (عام):
هذا المحدّد يسمح بالوصول إلى نوع البيانات المرتبط به (سواء كان "كلاس" أو خاصّيّة أو دالّة) من أي مكان في البرنامج، سواءً كان من داخل "الكلاس" أو من خارجه، ومن داخل الحزمة (package) كما في لغة الجافا، أو من خارجها.
2- protected (محمي):
وهذا المحدّد يسمح بصلاحيّات أقلّ من سابقه في الوصول إلى البيانات، إذ يكون الوصول مسموحًا به فقط من داخل "الكلاس" نفسه، أو من خلال "الكلاس" أو "الكلاسات" التي ترث من "الكلاس" الأب، وفي لغة جافا يكون الوصول مسموحًا به أيضًا ضمن الحزمة (package) ذاتها.
3- private (خاص):
يُعدّ هذا المحدّد الأقلّ صلاحيّات بالمقارنة مع المحدّدات الأخرى، فالوصول المباشر للبيانات في هذه الحالة لا يمكن أن يتجاوز حدود "الكلاس" نفسه فقط، ويكون الوصول من خارج "الكلاس" بطريقة غير مباشرة عبر الدوال المعروفة بـ : setter & getter.
ولمقاربة أنواع المحدّدات الثلاث، نضرب المثال التالي:
بإمكان الجميع مشاهدة منزلك ومعرفة تفاصيله من الخارج فقط، فيكون المظهر الخارجي لمنزلك في هذه الحالة عام (public).
أمّا بالنسبة إلى التفاصيل الداخليّة لمنزلك فبإمكان الأشخاص الذين تأذن لهم بالدخول (كالضيوف مثلًا) أن يشاهدوا بعض الغرف بالإضافة إلى غرفة الضيوف، وبالقدر الذي تسمح به فقط، وفي هذه الحالة يكون الشكل الداخلي لمنزلك محمي (protected).
وفيما يخص غرفة النوم -مثلًا-، فلا يمكن لضيوفك أن يتمكنوا من دخولها والتجوّل فيها كما هو الحال في بقية أرجاء المنزل، وإنما يكون ذلك الأمر حصرًا على الأهل وربما الأصدقاء المقربين، وفي هذه الحالة تكون غرفة النوم خاصة (private).
أرجو أن تكون الفكرة قد وصلت على الوجه المطلوب.
انتهى.

جاري تحميل الاقتراحات...