مقدمة
البرمجة الكائنية (Object-Oriented Programming أو اختصاراً OOP) هي نموذج في البرمجة تقوم على تمثيل كائنات برمجية مستقلة من حيث الحال والانتقال. ولكل كائن صنف (Class) ينتمي إليه يعرِّف ما يمكن أن يحوي من بيانات وما يمكن يجري عليها من دوال وما يمتنع.
نتعرف على ماهية البرمجة الكائنية، وفوائدها، آليات استخدامها والتصميم بها. فمن ذلك: تركيب الأنواع، تعريف الأصناف وإنشاؤها، والتغليف، والوراثة.
شواهد للبرمجة الكائنية في بايثون
الصنف يسمى النوع؛ ولذلك تستعمل الدالة type(x) لمعرفة نوع المتغير. وقد استعملنا كائنات من هذه الأصناف مثل:
واستعمال البرمجة الكائنية ظاهر في وحدات مبنيَّة مثل datetime للتعامل مع التواريخ والأوقات وحسابها وإخراجها وتفسيرها. وكذلك في وحدة pathlib للتعامل مع المسارات بتجرد عن الاختلافات بين أنظمة الملفات الموجودة في أنظمة التشغيل.
الكائنات
وأما الكائنات (Objects) فهي القيم المنتمية لهذه الأصناف، مثل:
لكننا في البرمجة عادة ما نسندها لأسماء ذات معنى، كما تقدَّم بالمتغيرات:
- المتغير
ageهو كائن من الصنفint - المتغير
temperatureهو كائن من الصنفfloat
معرفة نوع الكائن
ومعرفة نوع الكائن تكون بالدالة المبنية type() على النحو التالي:
مطابقة الكائن لنوع
والتحقق من ذلك يكون بالدالة المبنية isinstance() على النحو التالي:
ما فائدة البرمجة الكائنية؟
فكما أن الدالة تخفي تفاصيل التنفيذ الإجرائيَّة، تخفي البرمجة الكائنيَّة مع ذلك البيانات نفسها التي تجري عليها المعالجات. فهي تركيب للحقائق المنطقيَّة على صورة تسهل توظيفها في سياقات معيَّنة.
مثال ذلك: لا يهمنا أن نعلم أن حقيقة العدد الصحيح int وحقيقة العدد العشري float مختلفة عندما يكون السياق الذي نستعملهم فيه هو حساب المسافة بين مكانين أو حساب الباقي من القسمة ونحو ذلك (انظر IEEE للتفاصيل).

بل ربما تستغرب من أن المبرمجين -في مستوى معيَّن من المعالجة- يقسمون الأعداد بطريقة غير التي تقسِّم بها الرياضيات:
بايثون (ولغات البرمجة الأخرى) لا تتبع نفس قسمة الرياضيات لأنواع الأعداد بل تراعي عوامل خاصَّة بهندسة الحواسيب نفسها. فالعدد الصحيح يختلف تمثيله في الحاسب جذريًّا عن العدد العشري . فنتج عن ذلك القسمة التالية:
وهذا التجريد (Abstraction) هو أساسُ التكوين المتراكم للعلوم المنطقية كما في الحاسب. فإنها مبنيَّة على طبقات وطبقات، لا يعلمُ -غالبًا- (أو لا يحتاج أن يعلم -في الحالة المثالية-) ما تحتها؛ بل ذهنه يتعامل مع السلوك الظاهر، والحقائق تتولاها كل طبقة بحسبها. فيمكن بذلك بناء الأمور المعقَّدة بمساهمة أناس لا يعلم بعضهم عن بعض في أماكن مختلفة وأزمنة مختلفة وحالات مختلفة؛ بفضل التجريد المناسب.
إذًا تكمن قوة التجريد في كوْن المستفيد لا يضره ألا يعرف ما وراء الأشياء!