عادةً في البرمجة الكائنية (Object-oriented programming) نقوم بتعيين الـ Attributes أو المتغيرات كقيم خاصة (Private) ولعلك تتساءل ما هو المبرر لعمل ذلك؟!

يُعرف هذا المفهوم في البرمجة الكائنية بالمصطلح Encapsulation (الكبسلة أو التحفظ أو الانغلاق على نفسه)، وهو مفهوم يهدف إلى حماية و الحفاظ على الحالة الداخلية (Internal State) للكائن (Object). ما معنى هذا الكلام؟ دعنا نضرب مثالًا مبسطًا:

تخيل أنك تقوم بصنع سيارة (Object) وداخل هذه السيارة مجموعة من الخصائص والسمات (Attributes)، ولتكن تلكم السمات مثلًا: السرعة وإعدادات المحرك؛ ولكنك تريد أن تمنع سائق هذه السيارة من القدرة على تعديل تلك القيم ولنقل مثلا السرعة؛ فلا ينبغي للسائق أن يكون قادرًا على تعديل قيمة السرعة مُباشرة، إنما يجب أن يستخدم سلوكًا معينًا وسيطًا (Behavior أو Function) يتكفل بتغيير قيمة السرعة خلف الكواليس ولنقل أن هذه السلوك هو “الضغط على البنزين”، لا ينبغي ﻷحدٍ التعديل على تلك القيم مباشرة وذلك ﻷن تلك القيم لها علاقة ببعضها البعض و لديها قواعد وسياسات أو معادلة تحكمها والتي كُنتَ أنت قد كتبتها في الدالة خاصتك (Setter Method)، وعليه فإن عدم حماية هذه القيم بالكلمة Private قد يؤدي إلى حدوث عمليات عبثٍ واختلالات في تلك السياسات بواسطة السائقين.