البرمجة الموجهة بالكائنات – Object Oriented Programming هي أحد عواميد أساليب كتابة الكود الحديثة وجعله أكثر تنظيماً وسهولة.

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

وتقوم فكرة البرمجة الكائنية على مصطلحين أساسيين ورئيسيين هما الفئات "classes" والكائنات "objects" وما توفره من إعادة استخدام الكود البرمجي والاستفادة القصوى منه.

ولتوضيح كلا المصطلحين، فمصطلح "class" هو إطار عام يحتوي على عناصر داخلية مثل الخصائص "attributes" والوظائف أو الأفعال "methods or functions". على سبيل المثال فالمسميات التالية يمكن إعتبارها class:

الحيوان

الإنسان 

جماد

طيور..

فكل صفة من هذه الصفات شكل عام تحتوي على عناصر داخلية متعددة.

أما عن مصطلح الكائنات "objects" فهو ما يرث الخصائص والوظائف من ال class الرئيسي، بحيث يكون أكثر تخصيصا وتحديداً. فمصطلح الحيوان بشكل عام من الفئات بينما الأسد كائن. ومصطلح الإنسان بشكل عام من الفئات بينما مصطفي، أحمد ، محمد ، آدم.... كائن. 

معايير البرمجة الموجهة بالكائنات: 

يوجد أربعة معيار واضحة تطرحها البرمجة الكائنية على لغات البرمجة وهي كما يلي:

التغليف encapsulation: ويقصد به ارتباط الوظائف والخصائص الخاصة بشيء معين ببعضها لبعض كما أنها تمنع أي تدخل خارجي لعدم اساءة استخدام بعض البيانات.

التجريد abstraction: وهو مشابه للتغليف لأنه يخفي بعض الخصائص والوظائف من الكود الخارجي بالإضافة أنه يعزل أو يجرد التأثيرات التي تحدث فهي لا تؤثر إلا على الكود المعروض فقط بحيث إذا حدث خطأ ما لا يؤثر على الكود البرمجي ككل.

الوراثة inheritancce: ويقصد أنه إذا كان هناك صفات وخصائص مشتركة بين بعض الكائنات يمكن وراثتها من بعضها البعض بدلا من إعادة كتابتها.

تعدد الاشكال polymerphism: وهو إعادة استخدام نفس الصفة أو الوظيفة "method" ولكن بطرق مختلفة أي أن الصوت صفة ولكن تمثيل صوت القطة غير الأسد غير الإنسان.

لماذا أتعلم البرمجة الكائنية:

  • إعادة استخدام الكود أكثر من مرة من خلال الوراثة inherritance.
  • تسهيل التعامل وقراءة الكود البرمجي من خلال تقسيمه لمجموعه من ال classes.
  • المرونة من خلال مصطلح تعدد الأشكال polymerphism.
  • تغليف البيانات ومنع استخدامها بشكل خاطئ encapsualtion.
  • منع التأثير على الكود الخارجي عند حدوث أي تغييرات وتؤثر على الكود البرمجي المعروض فقط abstraction.
  • فهم تراكيب وبعض الوظائف البرمجية الجاهزة وكيفية عملها التي تستعمل البرمجة الكائنية.

تضع البرمجة الكائنية مجموعة الشروط الواجب على لغات البرمجة تطبيقها لتندرج تحت مظلة البرمجة الموجهة بالكائنات والاستفادة بالكم الهائل من مصادر الدعم والمكتبات الجاهزة والتحديثات المستمرة، فما هي لغة البرمجة الكائنية التي تكود بها، وما هي تجاربكم في فهمها وتطبيقها في المشاريع البرمجية؟