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
البرمجة الخطي ــة :تعتمد على برمجة كافة األهداف في أسطر متتالية و عند الحاجة لتكرار أي أمر فإنه
يتوجب علينا إعادة كتابته.
البرمجة اإلجرائيــة :تعتمد على كتابة الدوال و اإلجراءات و عند الحاجة إليها يتم استدعاءها و
االستفادة منها.
البرمجة الشيئيــة :تعتمد على ترجمة األشياء من الواقع لعالم البرمجة و سيتم استيضاحها في هذا
الفصل.
نقط ــة
نقــاش ذاتي ــة
ناقــش هــذه الفــروق مــع زمــالءك ؟