[برمجة] ماهي البرمجة الكائنية التوجه Objected orientied programming ؟


هذه مقالة وجب على كل مبرمج أو أي شخص ولج لعالم البرمجة معرفتها، فهي تتحدث عن موضوع مهم ألا وهو مفهوم البرمجة الكائنية التوجه!
لنبدأ في مقالتنا على بركة الله!

ما هو الكائن Object؟

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

كل شيء عبارة عن كائن Every things is an Object

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

لاحظ الصورة :


الآن وبعد أن قمنا بهذا التعريف المبسط، فقد قمنا بإعطاء أفضل مثال لكي تفهم مصطلح البرمجة الكائنية التوجه Objected oriented programming والتي نرمز لها بoop. ولنربط الآن ماقمنا بالتعرف عليه بالبرمجة.

علاقة الكائنات بالعالم الحقيقي والعالم البرمجي
وجب عليك أخي القارئ أن تفهم ماهو الـ(Class) و (Object)  حتى تتمكن من الربط بين مفهوم الكائنات الحية بالبرمجة، علينا أن نفهم ماهو الclass وماهو الObject
هذين الأخيرين لهما نفس المعنى حيث أن كليهما عبارة عن كائن.
الاختلاف يكمن هنا أخي أو أختي الكريمة:

فكل Object يقوم بتمثيل جزء من ذلك التطبيق الذي تعمل عليه، حيث أن الconcept يكون متغيرا فمثلا، لنفترض أن الكلاس هو الهاتف، لا يوجد هاتف واحد بشكل واحد بل يتم عمل عدة هواتف بشكل مختلف حيث أن الخصائص والأفعال تكون متغيرة ومختلفة عن الobject الآخر.

مثال آخر لكي تفهم أكثر:






لكي تتعامل لغات البرمجة مع الـ(Classes) و الـ(Objects) نحتاج لتمثيل الخصائص والأفعال كالتالي:
الخصائص (Properties, Attributes) والتي هي المتغيرات (Variables)
الأفعال (Action, Methods, Behaviour) والتي يتم التعبير عنها عن طريق الدوال (Function)
 والآن أصبح الـ(Class) و الـ(Object) عبارة عن مجموعة من المتغيرات والدوال تنبيه: لا بد من إنشاء الـ(Class) لكي نتمكن من إنشاء الـ(Object)
مثال آخر:

معلومات إضافية:

هنالك بعض اللغات التي ليست كائنية التوجه، كالسي مثلا، وهنالك أخرى نعم كالجافا سكربت، والphp وc# وruby وpython وvb.net والobjective-c التي تستعملها آبل.

خلاصة لكي تخرج بها:
الكلاس هو الفكرة، والobject هو الشيء، وهو مبني على الفكرة، ولنأخذ كمثال المهندس المعماري، فهو يقوم بهيكلة المنزل، ثم يقوم بتطبيقه، ولا يمكنه أن يجعل هندسة غرف النوم مثل الحمام أو مثل المطبخ، فلكل Object هدفه وغايته! ومن خلال الكلاس يمكننا خلق عدة أشياء (objects) هل فهمت الآن؟ أتمنى أن تكون كذلك!

وبالنهاية أتمنى أن ينال الموضوع إعجابك وأن يفيدك والسلام عليكم ورحمة الله تعالى وبركاته!
دمتم في رعاية الله وحفظه!