Transcript PPT

‫المحاضرة ‪ :3‬مقدمة لمفاهيم البرمجـة الشيئيـة‬
‫َّ‬
‫َ َّ َّ‬
‫اللهَ‬
‫صلى َ‬
‫عن أبي هريرة َر ِض ََي اللهَ َع ْنهَ عن النبي‬
‫َ‬
‫َّ‬
‫َعل ْي ِ َه َو َسلم قال‪:‬‬
‫َّ‬
‫َّ‬
‫(إن الله تعالى يغار‪ ،‬وغيرة الله أن يأتي‬
‫َّ‬
‫املرء ما حرم الله عليه)‬
‫َ َ‬
‫م َّتف ٌق َعل َْي ِ َه‪.‬‬
‫‪ ‬عندما تدخن ‪...‬‬
‫َ‬
‫‪ ‬عندما تتهاونين في ِحجابك ‪...‬‬
‫‪ ‬عندما تغتاب ‪....‬‬
‫‪ ‬عندما تسب و تشتم ‪....‬‬
‫‪ ‬عندما تأكل الحرام ‪....‬‬
‫‪ ‬عندما تسمع األغاني و املوسيقى ‪....‬‬
‫‪ ‬عندما تشاهد ما حرام هللا عليك‪....‬‬
‫‪ ‬كل هذه معاص ي يغار هللا تعالى عندما تفعلها‬
‫فتجنبها و احرص دائما على طاعة هللا تسعد في‬
‫الدنيا و اآلخرة‪.‬‬
‫‪ ‬ما هي الدوال (‪ )Methods‬؟‬
‫‪ ‬ما هي البرمج ــة الشيئي ــة و ملاذا ؟‬
‫‪ ‬املفاهيم األساسيـة للبرمجـة الشيئيـة‬
‫‪ ‬ملاذا البرمجـة الشيئيـة؟‬
‫‪ ‬ما الفارق بينها و بين أساليب البرمجة األخرى؟‬
‫ما هي البرمجة الشيئية ؟‬
‫‪ ‬لكي أجيبك على هذا السؤال ‪ ,‬ساعدني بالنظر في الغرفة التي تجلس فيها اآلن و قل لي ماذا ترى‬
‫؟‬
‫عدد األرجل‬
‫املادة‬
‫اللو َن‬
‫الحجم‬
‫الغرض‬
‫‪.‬‬
‫‪.‬‬
‫كراس ي‬
‫طاوالت‬
‫طالب‬
‫شبابيك‬
‫‪.‬‬
‫‪.‬‬
‫‪ ‬في البرمجة الشيئية نحاول برمجة التطبيقات بهذه العين التي تنظر للواقع بمفهوم أنه مكون‬
‫من أشياء و كل ش يء له صفات يتصف بها و له وظائف يقوم بها أو طرق يتم من خاللها‬
‫التعامل معه‪.‬‬
‫تدريب ذاتي ‪5‬‬
‫في صفحة واحدة قم بالتفريق بين أساليب البرمجة الثالث‪.‬‬
‫ما هي البرمجة الشيئية ؟‬
‫‪ ‬هناك أربعة مفاهيم أساسية يتم من خاللها الوصول ملفهوم البرمجة الشيئية و هي موضحة‬
‫بالرسم التالي ‪...‬‬
‫مفه ــوم التغليـف ‪Encapsulation‬‬
‫‪ ‬التغليف (‪ :)Encapsulation‬هو عملية وضع الخصائص و العمليات ضمن وحدة واحدة‬
‫(‪ )Class‬فيتم اخفاء البيانات و الدوال و يسمح بالوصول لهم بصالحيات معينة‪.‬‬
‫ً‬
‫‪ ‬و لذلك يسمى هذا املفهوم أيضـا اخفاء البيانات (‪.)Data Hiding‬‬
‫سحب جزء من الحساب‬
‫قيمة الحساب‬
‫العنوان‬
‫تغيير قيمة العنوان‬
‫االسم‬
‫مفه ــوم التجريــد ‪Abstraction‬‬
‫‪ ‬شاهد معي هذه الصورَ‪:‬‬
‫التعقيد الذي تشاهده اآلن في صورَة‬
‫اإلنســان ‪َ ,‬ال يتم التعرض له إطالقا َو‬
‫لكن يتم التعامل معه كإنسان له‬
‫حركات َو وظائف َو صفات ظاهره‬
‫األمر للفيل َو السيا َرة‬
‫فقط َو كذلك َ‬
‫؟‬
‫؟‬
‫عملية التجريـد تعمل على إخفاء‬
‫التعقيد الناتج عن كيفية عمل هذه‬
‫الكائنات‪ ,‬فأنت ترىَ السيارة تسي َر دونَ‬
‫ى طريقة عمل املحركات َو املوتو َر‪.‬‬
‫أن تر َ‬
‫مفه ــوم التجريــد ‪Abstraction‬‬
‫‪ ‬مفهــوم التجريــد (‪ :)Abstraction‬هو عملة اخفــاء طريقة تطبيق العمل داخل الـ‪, Class‬‬
‫فأنت تعلم أن السيارة تسير و لكنك ال ترى كيف تنتج هذه الحركة‪.‬‬
‫‪ ‬فمثــال ‪ :‬عند النظر للسيارة ننتبـه فقط لـكونها سيــارة و إذا دققنا النظر ننتبه لـ ‪:‬‬
‫‪ ‬اللون‬
‫‪ ‬الشكل‬
‫‪ ‬عدد األبواب‬
‫‪ ‬و لكن ال يلفت انتباهنا كيفية سيرها و طريقة وصول الوقود للمحركات و طريقة توقفها فهذا‬
‫التعقيد كله ال نتعامل معه في حياتنا و بالتالي البرمجة الشيئية تتمتع بهذه امليزة من خالل‬
‫مفهوم ‪Abstraction‬‬
‫مفه ــوم التوارث ‪Inheritance‬‬
‫‪ ‬مفهــوم التوراث هو مفهوم مشتق من علم الوراثة املوجود في الكائنات الحية ‪ ,‬حيث أن االبن‬
‫يرث صفات و مهارات معينة من أبويه و يظهر فيه صفات و مهارات أخرىَ‪ ,‬و هذا األمر متوفر‬
‫في البرمجة الشيئية مع بعض التغيير‪.‬‬
‫طالب‬
‫مدرس ي‬
‫ثانويَ‬
‫إعدادي‬
‫جامعي‬
‫ابتدائي‬
‫دبلوم‬
‫بكالوريوس‬
‫مفه ــوم تعدد األشكــال ‪Polymorphism‬‬
‫‪ ‬مفهــوم تعدد األشكال (‪ :)Polymorphism‬هو قدرة املبرمج من خالل لغات البرمجة التي‬
‫تدعم الشيئية أن ينتج عدد من الدوال التي يتم تطبيقها بشكل مختلف و ذلك ملحاكاة الواقع‬
‫حيث أننا نقوم بحساب مساحة األشكال الهندسية و لكن كل مساحة يتم حسابها بشكل‬
‫مختلف‪.‬‬
‫ملـاذا البرمج ــة الشيئـي ــة ؟!‬
‫‪ .1‬من خاللها نحصل على مفهوم (‪ )Modularization‬و هو يعني تجزئة املشكلة الكبيرة‬
‫إلى مشاكل صغيرة يمكن حلها بشكل منفصل‪.‬‬
‫مجموعـة من اإلجراءات و الدوال‬
‫املوجودة داخل أصناف(‪)Class‬‬
‫تطبيــق متكامل‬
‫ملـاذا البرمج ــة الشيئـي ــة ؟!‬
‫‪ .2‬من خاللها نحصل على مفهوم (‪ )Abstraction‬و هو يعني التعامل مع األشياء من حولنا‬
‫باختصار لتسهيل عملية فهم الواقع و تحويله لعالم البرمجة دونَ الدخول في سؤال كيف‬
‫حصل ذلك ؟!‪.‬‬
‫كل جزء من املشكلة له تفاصيل‬
‫دقيقة يتم التعامل معا الحقا‬
‫نظرة عامة على‬
‫املشكلة و وحداتها‬
‫ملـاذا البرمج ــة الشيئـي ــة ؟!‬
‫‪ .3‬من خاللها نحصل على مفهوم (‪. )Encapsulation‬‬
‫مفهوم ( ‪ )Composability‬و من خالله نتمكن من استخدام‬
‫‪ .4‬من خاللها نحصل على ً‬
‫األدوات التي تم بناءها سابقـا في انتاج تطبيقات جديدة مختلفة من خالل اعادة تركيبها و‬
‫تشكيلها‪.‬‬
‫تدريب ذاتي ‪6‬‬
‫قم بالبحث عن املزيد من مزايا البرمجة الشيئية مع توضيحها‬
‫بالرسم أ َو الشــرح‪.‬‬
‫ما الفارق بينها و بين أساليب البرمجة األخرى؟‬
‫‪ ‬هناك من أساليب البرمجة ثالث يمكننا التركيز عليها و هي‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫البرمجة الخطي ــة‪ :‬تعتمد على برمجة كافة األهداف في أسطر متتالية و عند الحاجة لتكرار أي أمر فإنه‬
‫يتوجب علينا إعادة كتابته‪.‬‬
‫البرمجة اإلجرائيــة‪ :‬تعتمد على كتابة الدوال و اإلجراءات و عند الحاجة إليها يتم استدعاءها و‬
‫االستفادة منها‪.‬‬
‫البرمجة الشيئيــة ‪ :‬تعتمد على ترجمة األشياء من الواقع لعالم البرمجة و سيتم استيضاحها في هذا‬
‫الفصل‪.‬‬
‫نقط ــة‬
‫نقــاش ذاتي ــة‬
‫ناقــش هــذه الفــروق مــع زمــالءك ؟‬