الكائنات في البرمجة Objects

اقرأ في هذا المقال


الكائن هو مثيل لفئة معينة، هذه الجملة الأكثر شيوعًا فيما يتعلق بالكائنات التي نصادفها. و “المثيل” يعني حدوث واحد أو مثال. وقد يكون من الصعب بعض الشيء فهمه في البداية. الآن هل هناك مفهوم أبسط للكائن؟ ولماذا نحتاج الكائن؟ سنجيبك عن هذه الأسئلة في هذه المقالة.

ما هو الكائن؟

الكائنات هي المفتاح لفهم التكنولوجيا البرمجة الشيئية. انظر حولك الآن وستجد العديد من الأمثلة على أشياء من العالم الحقيقي: كلبك، مكتبك، جهاز التلفزيون، دراجتك.

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

خذ دقيقة الآن لمراقبة الأشياء الواقعية الموجودة في منطقتك الحالية. لكل كائن تراه، اسأل نفسك سؤالين: “ما الحالات المحتملة التي يمكن أن يكون فيها هذا الكائن؟” و “ما هو السلوك المحتمل الذي يمكن أن يؤديه هذا الكائن؟”. تأكد من كتابة ملاحظاتك. أثناء قيامك بذلك، ستلاحظ أن كائنات العالم الحقيقي تختلف في تعقيدها؛ قد يكون لمصباح سطح المكتب الخاص بك حالتان محتملتان فقط، وهما (تشغيل وإيقاف) وسلوكان محتملان (تشغيل، إيقاف)، لكن راديو سطح المكتب الخاص بك قد يكون له حالات إضافية (تشغيل، إيقاف، مستوى الصوت الحالي، المحطة الحالية)، وسلوك (تشغيل، إيقاف، زيادة الصوت، خفض الصوت، البحث، المسح، والضبط). قد تلاحظ أيضًا أن بعض الكائنات، بدورها، ستحتوي أيضًا على كائنات أخرى. تُترجم كل هذه الملاحظات الواقعية إلى عالم البرمجة الشيئية.

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

فوائد الكائنات

يوفر تجميع الكود في كائنات برمجية فردية عددًا من الفوائد، بما في ذلك:

1- النمطية: يمكن كتابة الكود المصدر لكائن ما وصيانته بشكل مستقل عن كود المصدر للكائنات الأخرى. بمجرد إنشائه، يمكن تمرير الكائن بسهولة داخل النظام.

2- إخفاء المعلومات: من خلال التفاعل فقط مع أساليب الكائن (methods)، تظل تفاصيل تنفيذه الداخلية مخفية عن العالم الخارجي.

3- إعادة استخدام الكود: في حالة وجود كائن بالفعل (ربما تمت كتابته بواسطة مطور برمجيات آخر)، يمكنك استخدام هذا الكائن في برنامجك. يسمح هذا للمتخصصين بتنفيذ واختبار وتصحيح الكائنات المعقدة الخاصة بمهمة معينة، بالتي يمكنك الوثوق بها بعد ذلك لتشغيلها في الكود الخاصة بك.

4- سهولة التوصيل وتصحيح الأخطاء: إذا تبين أن كائنًا معينًا يمثل مشكلة، فيمكنك ببساطة إزالته من التطبيق الخاص بك وتوصيل كائن مختلف كبديل له. هذا مشابه لإصلاح المشاكل الميكانيكية في العالم الحقيقي، إذا انكسر مسمار، فأنت ستستبدل ذلك المسمار، وليس الجهاز بأكمله.


شارك المقالة: