3 - الدرس الثالث سي شارب: مفهوم البرمجة الكائنية OOP
الحمد لله وصلى الله وسلم على نبيه نواصل إن شاء الله تعالىمع بعض دروس سي شارب واليوم مع أول موضوع هو البرمجة الشيئية أو الكائنية التوجه OOP ندرس الموضوع وفق خطة موضوعية كالتالي:
1-مدخل.
2- التعريف والمفهوم التقني للبرمجة الكائنية oop.
3-خصائصها :
- التجميع Encapsulation
- التجريد Abstraction
- التوريث Inheritance
- تعدد الأشكال Polymorphizen
4- توابع.
نبدء على بركة الله ..................
1- مدخل
قبل البرمجة الكائنية كانت ثمة برمجة تدعى البرمجة الهيكلية Structured Programming مبنية على دوال أم و دوال فرعية يتم استدعاء الدوال الفرعية من داخل الدالة الأم حسب تسلسل البرنامج وفي كل مرة لإستدعاء الدالة الفرعية تستدعي الدالة الأم وهذا ماأدى إلى تقسيم البرنامج إلى عدة أقسام جزئية وإعادة إستخدامها في كل مرة.
ولنضرب مثالا : لو أردنا صناعة حجر بناء نحتاج إلى قالب مصنع من الحديد ففي البرمجة الهيكلية علينا أن نصنع لكل حجر قالبه بحيث يماثل قالب الحجرة الأخرى وهكذا وهذا يستدعي منا جهدا جبارا مع ما في وقوع الأخطاء في صنع قالب مماثلا مائة بالمائة لكل حجرة وهذا السلسل متعب فالقالب بمثابة الدالة الأم والحجر هو الدالة الفرع وهذا أحد عيوبها وهو صعوبة تفادي الأخطاء وبالتالي يضطر المبرمج لتصحيح الأخطاء يدويا والعيب الثاني انه لبرمجة تطبيق يلزم وقت أطول .
مثال آخر: تصف إمرأة لأخرى وصفة دواء طبيعيى فقالت لها خذي المقادير التالية:
1- ثلاث فناجين حلبة.
2- ثلاث فناجين حب الرشاد.
3- ثلاث فناجين حب السوداء.
4- ثلاث فناجين زيت.
لاحظ في كل مرة تكرر لها العدد ثلاثة وظرف المواد وهي الفناجين وهو في الحقيقة فنجان واحد فلو جعلتها بهاته الطريقة:
خذي كيل ثلاث فناجين للحلبة والرشاد والسوداء والزيت بفنجان واحد فكلمة فنجان واحد هو بمثابة الفئةوهي الفرق بين النمط الهيكلي والنمط الكائني.
* بإختصار: عيوب البرمجة الهيكلية أو التسلسلية هي:
- عيب التسلسل لأنه سبب لبطء البرمجة.
- صعوبة تفادي الأخطاء.
-
حل المشكلة خطوة بخطوة يدويا.
وهذا ما أدى إلى فكرة البرمجة الشيئية التي تعتمد على صنع قالب واحد يصنع به كل حجر في نفس القالب فكل الأحجار لها خصائص القالب الواحد وهو مايسمى بالكلاسس اي الفئة في الـ: oop.
2- مفهوم البرمجة الشيئية OOP:
- أولا نبدء بشرح حروف oop وهي إختصار لعبارة Object oriented programming نشرح كل كلمة على حدى:
1- Object : تعني شيء أوكائن مثل أسد كائن وهو ينتمي إلى فئة الحيوان , أحمد كائن ينتمي إلى فئة الإنسان .....إلخ
2- Oriented : تعني موجه أو توجيهي أو غرضي .
3- Programaing : اي برمجة.
- ثانيا شرحها كنمط برمجي :
هي نمط برمجي يستخدم مفهوم الفئة class والكائن object وتستند على تحديد الفئات class ذات خصائص عامة properties ووظائف عامة functions أو Methods وكل فئة class تمثل بداخلها كائنات تأخذ خصائص الفئة ووظيفة الفئة التي تنتمي إليها. ونضرب على ذلك أمثلة ليتضح التعريف:
المثال الأول: فئة الهواتف لها خصائص عامة ووظائف و قيم value يقوم بها فكل هاتف له خاصية اللون والشاشة وكل هاتف له وظيفة التكلم والكتابة والصوت والتسجيل .
الفئة الهواتف : * الخصائص : اللون + الشاشة + طباعة
* الوظيفــــــة : التكلم + التصوير + التسجيل.
لكن لما نأتي للتفصيل نأخذ هاتفين يعني كائنين objects من فئة الهواتف :هاتف نوكيا وهاتف آخر ولكل واحد منهما خصائص properties ووظائف functions:
*1- هاتف نوكيا:
1- الخصائص: - اللــــــــــون : أحمر.
-الشاشة : دقة عالية 13 بيكسال.
- طباعــــة : حروف كبيرة , ملونة
2- الوظيفـــــة : - التسجيل.
- التكلم .
- التصوير.
فالكائن (الهاتف) أكتسب خصائص properties ووظائف functions من فئة class الهواتف
والهاتف الآخر لونه أصفر وشاشة أقل دقة 8بيكسال مثلا .... فهما يشتركان في خصائص عامة هي اللون والشاشة ويفترقان في نوع اللون ونوع الشاشة كما يشتركان في فئة الوظيفة وهي الكلام والتسجيل والتصوير ويختلفان في دقة التصوير وصفاء الصوت
مثال ثان: فئة الحيوان أسد-نمر-كبش تجمعهما خصائص هو أن كل واحد من له خصائص من الشكل والجلد اذي يغطيه وله عمل كالأكل فتفريقك بين معنى حيوان ومعنى أسد هو الفرق بين فئة class و كائن object وعليه نعرف الفئة:
الفئة class : هي مجموعة من الكائنات objects ذات الخصائص والوظائف المشتركة تجمع مع بعضها البعض لاستخدامها في برنامج ما .
فالفئة class تحوي على الخصائص والدوال التي تتبع الكائن و يحمل كل خصائص ووظائف الفئة التي ينتمي إليها .
من ثمة نفهم أن نمط الدوال التسلسلي الهيكلي هو عبارة عن دوال أي وظائف أما سي شارب ذات نمط كائني عبارة عن فئات class .
في الدرس القادم نتطرق إلى دراسة الفئات والدوال والخصائص. إن شاء الله تعالى والله الموفق .
* تنبيه : يرجى من كل من لم يفهم شيئا من الدرس أن يراسلنا قسم سؤال وجواب لتعم المنفعة وبارك الله في الجميع
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !