منتدى دفعة (شموع المستقبل) قسم معلم حاسوب الدفعة الخامسة 2010 - 2011م

اهلاً وسهلاً بكم في منتديات (دفعة شموع المستقبل)
قسم معلم الحاسوب

منتدى دفعة (شموع المستقبل) قسم معلم حاسوب الدفعة الخامسة 2010 - 2011م


 
الرئيسيةالبوابةمكتبة الصورس .و .جبحـثالمجموعاتالتسجيلدخولتسجيل دخول الاعضاء
نرجوا من كل اعضاء المنتدى التفاعل واعادة تنشيط اقسام المنتدى لتعم الفائده للجميع

شاطر | 
 

 تابع البرمجة بالكائنات الشيئية

اذهب الى الأسفل 
كاتب الموضوعرسالة
خفايا هموم
عصو فضي
عصو فضي
avatar

عدد المساهمات : 704
نقاط : 29879
السٌّمعَة : 0
تاريخ التسجيل : 23/01/2011
العمر : 31

مُساهمةموضوع: تابع البرمجة بالكائنات الشيئية    الأحد يناير 23, 2011 7:17 pm






[b][b]
الدرس الثاني
[/b]


لسلام عليكم و رحمة الله و بركاته..

في درس اليوم سنتعلّم معلومات أكثر عن البرمجة بالكائنات الشيئية من خلال مقارنة بين البرمجة بالكائنات الشيئية والبرمجة التقليدية


لنأخذ مثال حي لتوضوح المقارنة :-)

لنفرض أن لدينا معركة بشكل ما بين المسلمين و الإسرائيلين. و أرغب في عمل محاكاة لهذه المعركة على الكومبيوتر. و لنفترض أن رأيي استقر على لغة ال C، و هي لغة تقليدية، لذا سأحضّر للبرنامج بالطريقة التقليدية، سأفكّر: (ماذا سيحدث؟)

سأكتب خطوات حل البرنامج:

- تبدأ المعركة.
- يجري الإسرائيلي تجاه المسلم من الخلف
- يتفادى المسلم الضربة الغادرة
- يهجم المسلم
- يموت الإسرائيلي
- تنتهي اللعبة

نلاحظ فيما سبق أننا رتّبنا البرنامج بحسب الأحداث، لذا بدأت الجمل السابقة بأفعال. و أغلب الظن أننا سنكتب كل ما سبق في ملف واحد و نقوم بتخزينه، و كلّما غيّرنا في مكان نحتاج دائماً إلى إعادة ترجمة البرنامج كاملاً مرّة أخرى (Recompiling).

ماذا نستنتج من ذلك؟
نستنتج أن البرمجة التقليدية تحافظ على ترتيب الأحداث، و يتطلّب التغيير في هذا الترتيب برمجة البرنامج و جميع حلقاته مرّة أخرى.

البرمجة التقليدية تهتم بالأحداث، و تربط بينها الأشياء أو البيانات.

لنفرض أننا أردنا أن نكتب البرنامج بلغة من لغات الكائنات الشيئية (مثل الجافا مثلاً)

سنقرأ السؤال مرة أخرى و لكن هذه المرة سنسأل أنفسنا: (من الأعضاء في هذا المثال؟)

سيقول أحدكم:

المسلم



و سيقول آخر:

الاسرائيلي



سأعود لأسأل: فيم فكّرنا هذه المرة؟ لم نفكّر في الأحداث، بل فكّرنا في أبطال القصة. السؤال الآن: كيف سنكتب البرنامج الآن؟

سأقول لكم :-)

1) بعد أن قمنا بتحديد الأشياء أو الأعضاء، سنقوم بعمل الموديلات لهم أو بمعنى أصح الفئات. لأنه لا يمكن أن يوجد عضو لا ينتمي لفئة!

الفئة الأولى هي فئة (المسلم)، بم يتميّز المسلم من صفات؟

ا
المسلم

الصفات:
له اسم
له روح و جسد
له حالة (امّا حي و إما ميّت)

القدرات:
يشهد أن لا إله إالا الله و يقول الله أكبر
يستطيع أن يقاتل
يمكن أن يجرح
يمكن أن يموت (أو يستشهد)



نأتي للاسرائيلي، و نكتب صفاته
ا
الاسرائيلي

الصفات:
له اسم
له روح و جسد
له حالة (امّا حي و إما ميّت)

القدرات:
يغدر و ينقض العهد
يقاتل من خلف جدار
يمكن أن يجرح
يمكن أن يموت



الآن و بعد أن حددنا الفئات التي ينتمي لها المسلمون و الاسرائيليون، فلنجلس قليلاً لنتأمّل:

لدينا الآن فئة تجمع الصفات المشتركة لأي مسلم (و نلاحظ أننا استخدمنا صيغة المفرد في التسمية) و كذلك الصفات المشتركة لأي اسرائيلي. و نفس الشيء بالنسبة للقدرات.

نريد الآن أن نبدأ المعركة! همم ماذا هناك؟.. فعلاً صحيح، أين المعركة؟ لا يمكننا غدراج المعركة ضمن صفات أو قدرات المسلم، و لا ضمن صفات أو قدرات الإسرائيلي، إذاً سنحتاج إلى عضو آخر جديد يجمع بين الاثنين و هو:

المعركة


و في المعركة نستطيع أن ننشئ عضو من فئة المسلمين و لنسمه محمد و عضو من فئة الإسرائيلين و لنسمّه شارون!

الأن المسألة أصبحت أسهل، ما هي صفات المعركة؟
فيها طرفا نزاع، لها وقت للبداية و لها وقت للنهاية و لها نتيجة!

بدلاً من أن نقول صفات سأستعيض عنها بكلمة أخرى أوضح و هي (مكوّنات) لأن المعركة في الواقع هي فئة موجودة للتكون مكان يجمع أعضاء من عد فئات أخرى. إذاً المعركة ستأخذ هذا الشكل:
ا
المعركة

المكونات:
عضو مسلم
عضو اسرائيلي

القدرات:
تبدأ في وقت محدد
تنتهي في وقت محدد
يتم تحديد النتيجة بعد نهايتها



الآن في عضو من فئة المعركة و لنسمه معركة الإنتصار يوجد مسلم اسمه محمد و اسرائيلي اسمه شارون، و هما سيتقاتلان و تنتهي المعركة بشكل لا يعلمه إلا الله!

ماذا نستنتج من ذلك؟
نستنتج أن البرمجة باستخدام الكائنات الشيئية تتكون من فئات، و أعضاء. و أن بداية البرنامج تتم عبر نقطة بدايو دون تحديد لسير البرنامج لأن الأعضاء من مختلف الفئات قد يتصرّفون بشكل أو بآخر.

توضيح:
أي أنني عندما أبدأ المعركة قد يقوم المسلم بالهجوم أولاً، و قد يقوم الإسرائيلي بالغدر، لا يوجد ما يضمن لي أن أحدهما سيسبق الآخر، لأن كلا الفئتين احتفظت بصفاتها و قدراتها بشكل منفصل عن الفئة الأخرى.

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

كيف يتم تطبيق هذا باستخدام لغة الجافا؟ هذا هو موضوع الدرس القادم ان شاء الله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
رستم



عدد المساهمات : 11
نقاط : 28401
السٌّمعَة : 0
تاريخ التسجيل : 12/02/2011
العمر : 27

مُساهمةموضوع: للامام   السبت فبراير 12, 2011 11:37 am

انشالله على طول للامام
لانو احنا ماتعودنا منك الا كل جديد وافضل afro
الرجوع الى أعلى الصفحة اذهب الى الأسفل
أميرالمغاربي
مدير المنتدى
مدير المنتدى
avatar

عدد المساهمات : 188
نقاط : 29043
السٌّمعَة : 0
تاريخ التسجيل : 23/01/2011
العمر : 30

مُساهمةموضوع: تسلم يا الغالي    السبت فبراير 12, 2011 3:05 pm



يسلموووو يا الغالي انت الي كلك ذوق يا ذوق
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://ameer-net.7olm.org
 
تابع البرمجة بالكائنات الشيئية
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى دفعة (شموع المستقبل) قسم معلم حاسوب الدفعة الخامسة 2010 - 2011م :: المنتديات الدراسية :: منتدى لغات البرمجة-
انتقل الى: