بسم الله الرحمن الرحيم

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



Lecture 5 :
حسنا سنكمل اليوم اخر درس من نماذج البرمجة وسنتحدث عن البرمجة المعتمدة علي الأحداث و البرمجة الكائنية oop
ونبدا بسم الله الرحمن الرحيم
البرمجة المعتمدة علي الأحداث ويعد هذا النموذج احد نماذج البرمجة اﻷمرية وهي برمجة تعتمد علي حدث event فمثلا القيام بعملية عند الضغط علي زر ما
او مثلا مشاريع موجودة علي المدونة اغلبها تعتمد علي هذا النموذج 
حيث ننتظر اشارة من حساس وتبعا لهذه الإشارة نقوم بعمليات محددة 
يوفر هذا النموذج عدة امكانيات مميزه حيث يمكننا هذا النموذج من عمل واجهات رسومية للبرنامج وربطها بالكود الخاص بنا 
او بمعني اخر هذا النموذج هو حلقة الوصل بين backend و frontend
هذا النموذج سنتعامل معه بتعمق شديد جدا في الدروس المتقدمة ولكن حاليا يكفي ما ذكرناه 

ننتقل لنموذج آخر من نماذج البرمجة والذي يعد اهم نموذج برمجي وهو البرمجة الكائنية او البرمجة الشيئية او OOP 
هو ما يطلبه سوق العمل و هو ما يتم استخدامه في اغلب البرامج الضخمة 
وهو ما يتم دراسته في اكبر الجامعات حاليا واي لغة برمجية لا تحتوي علي هذا النموذج يراها الخبراء بانها قاصرة ولا تمتلك الكفاءة 
ووفر هذا النموذج الحرية للمبرمج وقام بتسهيل التعامل مع الأخطاء ومع الأكواد البرمجة 
لكن في البداية يجب ان نتطرق الي مفهوم الكائن object
في بدايات البرمجة كانت اغلب البرامج بسيطة للغاية وغير معقدة ابدا ومع مرور الوقت بدات البرامج بالتعقيد 
فكان المبرمج يحتاج للتعامل مع مجموعات ضخمة للمتغيرات لإستخدامها في مشروعه 
يقوم نموذج البرمجة الشيئية بتجميع المتغيرات المشتركة و جعلها في كائن واحد
دعنا نوضح اكثر بمثال عملي 
لدينا عدة سيارات كل سيارة لها اسم ولها تاريخ اصدار ولها سرعة ولها لون فلو كان عدد السيارة واحد نكتب هذه المتغيرات بهذه الطريقة
color = '__'
type = '__'
speed='__'
date='__'
حسنا هذه الطريقة لو قمنا باستخدام نموذج البرمجة الإجرائية في العمل
ماذا لو اردنا اضافة سيارة اخري يكون المتغيرات بهذا الشكل
colorA='__'        colorB='__'
typeA='__'         typeB='__'
dateA='__'         dateB='__'
speedA='__'       speedB='__'
وهكذا يزداد عدد المتغيرات مع زيادة عدد السيارات 
تقوم البرمجة الشيئية بالعمل علي مفهوم الكائن 
اي انها تقوم بعمل كائن يأخذ الكائن عدة خصائص ويمكن استخدام الكائن اكثر من مره
كمثال بدلا من كتابة عدد ضخم من المتغيرات نقوم بكتابة كائن السيارة يحتوي هذا الكائن علي خصائص مثل اسم ونوع وتاريخ اصدار وسرعة السيارة
ونقوم باستخدام الكائن لعمل اكثر من سيارة 
مثال لكي نستطيع فهم فكرة عمل الكائن
حيث لانشاء كائن استخدمت كود struct والذي يمكننا من عمل كائن في لغة c واعطاء اسم الكائن car و خصائص الكائن
اسم السيارة 
وسرعة السيارة
وتاريخ الإصدار
واللون
ثم في الكود main قمت باستدعاء الكائن car وصممنا به 2object
car1 , car2 حيث يحتول كل object علي خصائص الكائن الأصلي والذي هو car
ثم قمت بتعديل علي خصائص كل car علي حدي 
فتعديل علي 
car1.name 
car1.color
car1.speed
car1.data
وهكذا مع car2 
ولكي تتضح فكرة الكائن اكثر سنقوم بطباعة كل الكائنات التي عملناها ولنري البيانات التي تحتويها
  printf ("Name :%s\n", car1.name);
  printf ("speed :%d\n", car1.speed);
  printf ("date :%d\n", car1.date);
  printf ("color :%s\n\n", car1.color);
وهكذا لنقوم بطباعه كافة خصائص car1
  printf ("Name :%s\n", car2.name);
  printf ("speed :%d\n", car2.speed);
  printf ("date :%d\n", car2.date);
  printf ("color :%s\n", car2.color);
وقمنا بطباعه خصائص car2
ولنري النتيجة 



النتيجة كما هو موضح باﻷعلي يحتوي كل كائن علي نفس الخصائص لكن لايحتوي كل كائن علي نفس القيم وهذا هو مفهوم الكائن 
هذا هو المبدا الرئيسي الذي تعمل عليه البرمجة الكائنية
حيث تتميز البرمجة الكائنية بعدة مميزات
البساطة : حيث ان عملية معالجة اﻷخطاء البرمجية في الكود تكون اسهل بكثير وخصوصا عند استعمال البرمجة الشيئية 
كل كائن له استقلالية تامه اي نعم تشترك الكائنات في الخصائص ولكن كل كائن مستقل بذاته من ناحية قيم الخصائص 
سهولة التطوير : حيث يمكن ان يتم التطوير للبرامج عن طريق اضافة كائنات جديدة او عن طريق التعديل علي كائنات موجودة 
كل كائن يمثل برنامج مصغر او توضيحيا كل كائن عبارة عن كيان منفصل وهذا يسهل عمليات متابعة لأخطاء
حسنا وضحنا مفهوم الكائن ووننتقل الي المفهوم الأكاديمي للبرمجة الكائنية 
البرمجة الشيئية هي عملية محاكاة الواقع في البرمجة فهي النظر للوجود علي انه مجرد كائنات objects ومن ثم محاكاته في عالم البرمجة كل شئ في هذا الوجود له خصائص Attributes وافعال methods
هذا بإختصار مفهوم البرمجة الشيئية 
يوجد ايضا مفهوم مهم وهو الوراثة 
الوراثة هي نقل كافة خصائص وسمات كائن الي كائن اخري 
من الكائن الأب الي الكائن الأبن

هذا بإختصار شديد مفاهيم الأساسية للبرمجة الشيئية 
والتي يحتاجها اي مبتدا 
نتقابل في الدرس القادم الذي سنناقش فيه مفاهيم البرمجة وكيف يقوم البرنامج من تحويل الكود من لغة يفهمها البشر الي لغة تفهما الآلة

تصميم : بلال حسان سعدي





تعليقات