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

منتدي حضن الغريب


 

التسجيلالتسجيل  الرئيسيةالرئيسية  أحدث الصورأحدث الصور  دخولدخول  

 

 سلسلة دروس الجافا الدرس الرابع

اذهب الى الأسفل 
كاتب الموضوعرسالة
nsrbulhmd
المدير العام
المدير العام
nsrbulhmd


الجنس : ذكر
عدد الرسائل : 1282
تعاليق : عندما تنتقد أحداً فبعين النحل تعود أن تـُبصـِر
ولا تنظـُر للناس
بعين الذباب فتقع على ماهو مُستقذِر
و سأحكي لك قصه العنزة والذئب حتى لا
تأمن من يـُمكِر
وحينما يثق بك أحد فإياك ثم إياك أن تـُغدِر


تاريخ التسجيل : 09/02/2009

الاضافات
منتدنا على الفيس بوك:

سلسلة دروس الجافا      الدرس الرابع Empty
مُساهمةموضوع: سلسلة دروس الجافا الدرس الرابع   سلسلة دروس الجافا      الدرس الرابع Icon_minitime1الإثنين 23 مارس 2009, 11:58 pm

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




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




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




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




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





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



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





ماذا نستنتج من ذلك؟




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



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



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




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



سيقول أحدكم:
المسلم




و سيقول آخر:
الاسرائيلي



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



سأقول لكم :-)



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




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



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




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





الاسرائيلي
الصفات:
له اسم
له روح وجسد
له حالة (امّا حي و إما ميّت)
القدرات:
يغدر وينقض العهد
يقاتل من خلف جدار
يمكن أن يجرح يمكن أن يموت



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


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

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


المعركة



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




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



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




المعركة
الصفات:
المكونات: عضو مسلم
عضو اسرائيلي
القدرات:
تبدأ في وقت محدد
تنتهي في وقت محدد
يتم تحديد النتيجة بعد نهايتها



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


ماذا نستنتج من ذلك؟


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


توضيح:


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

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


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

وفوق كل ذي علم عليم
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://nasserstar.ahlamontada.com
 
سلسلة دروس الجافا الدرس الرابع
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» سلسلة دروس الجافا الدرس الرابع عشر
» سلسلة دروس الجافا الدرس الثالث عشر
» سلسلة دروس الجافا الدرس الخامس عشر
» سلسلة دروس الجافا الدرس الاول
» سلسلة دروس الجافا الدرس السادس عشر

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