Oop with java lecture 3 intro to oop

Page 1

‫ل‬ ‫محاضرة ‪ : 1‬مقدمة لمساق و مراجعة للاساسيات‬

‫اعداد ‪ :‬ا‪ .‬فاطمة عويدات خليقة‪.‬‬

‫‪2018– 2017‬‬


‫✓ ما هي الدوال ‪ Methods‬؟‬ ‫✓ ما هي البرمجـــة الشيئيـــة و لماذا ؟‬ ‫✓ المفاهيم األساسيـة للبرمجـة الشيئيـة‬

‫✓ لماذا البرمجـة الشيئيـة؟‬ ‫✓ ما الفارق بينها و بين أساليب البرمجة األخرى؟‬


‫ما هي البرمجة الشيئية ؟‬ ‫✓ لكي نجيب على هذا السؤال ‪ ،‬ننظر في الغرفة التي نجلس فيها اآلن و نسجل ما‬ ‫نرى ؟‬ ‫عدد األرجل‬ ‫المادة‬ ‫اللون‬ ‫الحجم‬ ‫الغرض‬ ‫‪.‬‬ ‫‪.‬‬

‫كراسي‬ ‫طاوالت‬ ‫طالب‬ ‫شبابيك‬ ‫‪.‬‬ ‫‪.‬‬

‫✓ في البرمجة الشيئية نحاول برمجة التطبيقات بهذه العين التي تنظر للواقع بمفهوم أنه‬ ‫مكون من أشياء و كل شيء له صفات يتصف بها و له وظائف يقوم بها أو طرق‬ ‫يتم من خاللها التعامل معه‪.‬‬


‫ما هي البرمجة الشيئية ؟‬ ‫✓ هناك أربعة مفاهيم أساسية يتم من خاللها الوصول لمفهوم البرمجة الشيئية و هي‬ ‫موضحة بالرسم التالي‪:‬‬


‫مفهـــوم التغليـف ‪Encapsulation‬‬ ‫✓ التغليف ‪ Encapsulation‬هو عملية وضع الخصائص)‪ (attributes‬و العمليات‬ ‫ضمن وحدة واحدة )‪( Class‬فيتم اخفاء البيانات و الدوال و يُسمح بالوصول لهم‬ ‫بصالحيات معينة‪.‬‬ ‫✓ و لذلك يسمى هذا المفهوم أيضـًا اخفاء البيانات )‪(Data Hiding‬‬

‫سحب جزء من الحساب‬ ‫قيمة الحساب‬ ‫العنوان‬

‫تغيير قيمة العنوان‬ ‫االسم‬


‫مفهــــوم التجريــد ‪Abstraction‬‬ ‫✓ شاهد معي هذه الصور‪:‬‬ ‫التعقيد الذي تشاهده اآلن في صورة‬ ‫اإلنســـان ‪ ,‬ال يتم التعرض له‬ ‫إطالقا و لكن يتم التعامل معه‬ ‫كإنسان له حركات و وظائف و‬ ‫صفات ظاهره فقط و كذلك األمر‬ ‫للفيل و السيارة‬

‫؟‬

‫؟‬ ‫عملية التجريـد تعمل على إخفاء‬ ‫التعقيد الناتج عن كيفية عمل هذه‬ ‫الكائنات‪ ,‬فأنت ترى السيارة تسير‬ ‫دون أن ترى طريقة عمل‬ ‫المحركات و الموتور‪.‬‬


‫مفهــــوم التجريــد ‪Abstraction‬‬ ‫✓ مفهــوم التجريــد ‪ :Abstraction‬هو عملة اخفــاء طريقة تطبيق العمل داخل‬ ‫الـ‪ , Class‬فأنت تعلم أن السيارة تسير و لكنك ال ترى كيف تنتج هذه الحركة‪.‬‬ ‫✓ فمثــال ‪:‬عند النظر للسيارة ننتبـه فقط لـكونها سيــارة و إذا دققنا النظر ننتبه لـ ‪:‬‬ ‫▪ اللون‬ ‫▪ الشكل‬ ‫▪ عدد األبواب‬ ‫✓ و لكن ال يلفت انتباهنا كيفية سيرها و طريقة وصول الوقود للمحركات و طريقة‬ ‫توقفها فهذا التعقيد كله ال نتعامل معه في حياتنا و بالتالي البرمجة الشيئية تتمتع بهذه‬ ‫الميزة من خالل مفهوم ‪Abstraction‬‬


‫مفهــــوم التوارث ‪Inheritance‬‬ ‫✓ مفهــوم التوراث هو مفهوم مشتق من علم الوراثة الموجود في الكائنات الحية ‪،‬‬ ‫حيث أن االبن يرث صفات و مهارات معينة من أبويه و يظهر فيه صفات و‬ ‫مهارات أخري ‪ ،‬و هذا األمر متوفر في البرمجة الشيئية مع بعض التغيير‪.‬‬ ‫طالب‬

‫مدرسي‬

‫ثانوي‬

‫إعدادي‬

‫جامعي‬

‫ابتدائي‬

‫دبلوم‬

‫بكالوريوس‬


‫مفهــــوم تعدد األشكــال ‪Polymorphism‬‬ ‫✓ مفهــوم تعدد األشكال ‪ Polymorphism‬هو قدرة المبرمج من خالل لغات البرمجة‬ ‫التي تدعم الشيئية أن يُنتج عدد من الدوال التي يتم تطبيقها بشكل مختلف و ذلك‬ ‫لمحاكاة الواقع حيث أننا نقوم بحساب مساحة األشكال الهندسية و لكن كل مساحة يتم‬ ‫حسابها بشكل مختلف‪.‬‬


Polymorphism ‫مفهوم‬ ‫مثـــال‬


‫لمـاذا البرمجـــة الشيئـيــــة ؟!‬ ‫‪ .1‬من خاللها نحصل على مفهوم ‪ Modularization‬و هو يعني تجزئة المشكلة‬ ‫الكبيرة إلى مشاكل صغيرة يمكن حلها بشكل منفصل‪.‬‬

‫مجموعـة من اإلجراءات و الدوال‬ ‫الموجودة داخل أصناف ‪Class‬‬

‫تطبيــق متكامل‬


‫لمـاذا البرمجـــة الشيئـيــــة ؟!‬ ‫‪ .2‬من خاللها نحصل على مفهوم ‪ Abstraction‬و هو يعني التعامل مع األشياء‬ ‫من حولنا باختصار لتسهيل عملية فهم الواقع و تحويله لعالم البرمجة دون‬ ‫الدخول في سؤال كيف حصل ذلك‪.‬‬

‫كل جزء من المشكلة له تفاصيل‬ ‫دقيقة يتم التعامل معا الحقا‬

‫نظرة عامة على‬ ‫المشكلة و وحداتها‬


‫لمـاذا البرمجـــة الشيئـيــــة‪.‬‬ ‫‪ .3‬من خاللها نحصل على مفهوم ‪Encapsulation‬‬ ‫‪ .4‬من خاللها نحصل على مفهوم التركيب ‪ Composability‬و من خالله‬ ‫نتمكن من استخدام األدوات التي تم بناءها سابقـًا في انتاج تطبيقات جديدة مختلفة‬ ‫من خالل اعادة تركيبها و تشكيلها‪.‬‬

‫تدريب ذاتي ‪6‬‬

‫قم بالبحث عن المزيد من مزايا البرمجة الشيئية مع‬ ‫توضيحها بالرسم أو الشــرح‪.‬‬


‫ما الفارق بينها و بين أساليب البرمجة األخرى؟‬ ‫✓ هناك من أساليب البرمجة ثالث يمكننا التركيز عليها و هي‪:‬‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬

‫البرمجة الخطيــــة‪ :‬تعتمد على برمجة كافة األهداف في أسطر متتالية و عند الحاجة لتكرار‬ ‫أي أمر فإنه يتوجب علينا إعادة كتابته‪.‬‬ ‫البرمجة اإلجرائيــة‪ :‬تعتمد على كتابة الدوال و اإلجراءات و عند الحاجة إليها يتم‬ ‫استدعاءها و االستفادة منها‪.‬‬ ‫البرمجة الشيئيــة ‪ :‬تعتمد على ترجمة األشياء من الواقع لعالم البرمجة و سيتم استيضاحها‬ ‫في هذا الفصل‪.‬‬


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.