SlideShare a Scribd company logo
1 of 52
Download to read offline
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬
‫أ‬.‫البلبيسي‬ ‫عمر‬
‫مقدمة‬
‫هي‬ ‫البرمجة‬‫ال‬ ‫لحل‬ ‫الرياضية‬ ‫والوسائل‬ ‫الطرق‬ ‫استخدام‬‫مشكالت‬
‫وسيط‬ ‫باستخدام‬(‫هو‬‫الحاسوب‬)‫المعا‬ ‫تلك‬ ‫ترجمة‬ ‫يمكنه‬‫دالت‬
‫بمخرجات‬ ‫والخروج‬ ‫معينة‬ ‫بمهام‬ ‫للقيام‬.
‫يت‬ ‫التي‬ ‫البرمجية‬ ‫التعليمات‬ ‫من‬ ‫مجموعة‬ ‫هو‬ ‫البرنامج‬‫تحليلها‬ ‫م‬
‫معينة‬ ‫مهام‬ ‫أو‬ ‫مهمة‬ ‫ألداء‬ ‫الحاسوب‬ ‫بواسطة‬ ‫وتنفيذها‬.
‫للبرنامج‬ ‫األساسية‬ ‫المهام‬
‫هي‬ ‫البرمجة‬ ‫لغات‬ ‫توفرها‬ ‫التي‬ ‫األساسية‬ ‫المهام‬:
‫قبول‬‫المدخالت‬
‫تخزين‬‫البيانات‬
‫معالجة‬‫البيانات‬
‫إنتاج‬‫المخرجات‬
‫البرمجة‬ ‫وأنماط‬ ‫طرق‬
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
 Procedural Programming
‫كائنية‬ ‫أو‬ ‫الشيئية‬ ‫البرمجة‬‫التوجه‬
 Object Oriented Programming
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
‫البرمجة‬‫ائية‬‫ر‬‫اإلج‬(‫باإلنجليزية‬:Procedural Programming)‫هي‬
‫برمجة‬ ‫نمط‬‫اءات‬‫ر‬‫اإلج‬ ‫أو‬ ‫المهام‬ ‫على‬ ‫أساسي‬ ‫بشكل‬ ‫يركز‬
‫المخرجات‬ ‫إلنتاج‬ ‫المطلوبة‬.
‫اءات‬‫ر‬‫إج‬ ‫أو‬ ‫مهام‬ ‫إلى‬ ‫البرنامج‬ ‫تقسيم‬ ‫يتم‬ ‫النمط‬ ‫هذا‬ ‫في‬‫بحيث‬
‫ثم‬ ‫متسلسل‬ ‫بشكل‬ ‫البرمجية‬ ‫التعليمات‬ ‫كتابة‬ ‫يتم‬‫استخدام‬
‫وتن‬ ‫استدعائها‬ ‫سيتم‬ ‫التي‬ ‫اءات‬‫ر‬‫اإلج‬ ‫أي‬ ‫لتحديد‬ ‫المنطق‬‫فيذها‬.
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
F()
F()
x
x
‫البرنامج‬
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
F()
F()
Program
F()
F()
F()
F()
F()
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬
‫الشيئية‬ ‫البرمجة‬ ‫أو‬ ‫ه‬
ُّ
‫التوج‬ ‫كائنية‬ ‫البرمجة‬
(‫باإلنجليزية‬:Object Oriented Programming - OOP(‫وهي‬
‫تسم‬ ‫وحدات‬ ‫إلى‬ ‫البرنامج‬ ‫يقسم‬ ‫فيه‬ ‫برمجة‬ ‫نمط‬ ‫عن‬ ‫عبارة‬‫ى‬
‫الكائنات‬Objects،‫البيانا‬ ‫على‬ ‫تشمل‬ ‫وحدة‬ ‫عن‬ ‫عبارة‬ ‫كائن‬ ‫كل‬‫ت‬
(‫والثوابت‬ ‫ات‬‫ر‬‫المتغي‬)‫والعمليات‬(‫الدوال‬.)
‫بعضه‬ ‫مع‬ ‫وربطها‬ ‫الكائنات‬ ‫بواسطة‬ ‫البرنامج‬ ‫بناء‬ ‫يتم‬‫البعض‬ ‫ا‬
‫كائن‬ ‫بكل‬ ‫الخاصة‬ ‫االستخدام‬ ‫وواجهات‬ ‫أو‬ ‫الدوال‬ ‫باستخدام‬.
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬
F()
F()
x
x
‫البرنامج‬
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫لغات‬
‫هي‬ ‫الشيئية‬ ‫البرمجة‬ ‫تدعم‬ ‫التي‬ ‫البرمجة‬ ‫لغات‬ ‫أشهر‬ ‫من‬:-
‫جافا‬ ‫لغة‬Java
‫بايثون‬ ‫لغة‬Python
‫لغة‬‫دلفي‬Delphi
‫شارب‬ ‫سي‬ ‫لغة‬C#
‫البرمجة‬ ‫مفهوم‬‫التوجه‬ ‫كائنية‬
‫التوجه‬ ‫غرضية‬ ‫البرمجة‬
‫المنحى‬ ‫كائنية‬ ‫البرمجة‬
‫بالعناصر‬ ‫البرمجة‬
‫الكائ‬ ‫نحو‬ ‫الموجهة‬ ‫البرمجة‬‫نات‬
‫بالكائنات‬ ‫البرمجة‬
‫أسماء‬‫أخرى‬:-
‫الكينونية‬ ‫البرمجة‬
‫البرمجة‬‫المنحى‬ ‫شيئية‬.
‫الموجهة‬ ‫البرمجة‬
‫الكائنية‬ ‫البرمجة‬
‫التوج‬ ‫الكائنية‬ ‫البرمجة‬‫ه‬
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫البر‬ ‫في‬ ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫بتطبيق‬ ‫البدء‬ ‫قبل‬‫بك‬ ‫الخاصة‬ ‫امج‬
‫المفاهي‬ ‫بعض‬ ‫تعلم‬ ‫أوال‬ ‫عليك‬ ‫يجب‬ ‫كود‬ ‫أي‬ ‫كتابة‬ ‫وقبل‬‫م‬
‫األساسية‬.
‫م‬ ‫األساسية‬ ‫المفاهيم‬ ‫لهذه‬ ‫سنتطرق‬ ‫المحاضرة‬ ‫هذه‬ ‫في‬‫ثل‬:
‫الكائن‬Object‫الصنف‬/‫الفئة‬Class‫اثة‬‫ر‬‫الو‬Inheritance‫واجهة‬
‫التعامل‬Interface‫الحزمة‬Package‫الجمل‬ ‫تركيبة‬ ‫عن‬ ‫نبذة‬ ‫مع‬
‫البرمجية‬(Syntax)‫الوقت‬ ‫نفس‬ ‫في‬.
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫بال‬ ‫البرمجة‬ ‫ربط‬ ‫على‬ ‫الشيئية‬ ‫البرمجة‬ ‫فلسفة‬ ‫تقوم‬‫الواقعية‬ ‫حياة‬
‫وعمليا‬ ‫خصائصه‬ ‫له‬ ‫كائن‬ ‫عن‬ ‫عبارة‬ ‫حولنا‬ ‫شيء‬ ‫كل‬ ‫أن‬ ‫حيث‬‫ته‬.
‫ف‬ ‫الكائنات‬ ‫على‬ ‫األمثلة‬ ‫من‬ ‫العديد‬ ‫ستجد‬ ‫حولك‬ ‫نظرت‬ ‫إذا‬‫الحياة‬ ‫ي‬
‫و‬ ‫الهوائية‬ ‫اجة‬‫ر‬‫الد‬ ،‫الكرسي‬ ،‫المكتب‬ ،‫التلفاز‬ ‫مثل‬ ‫الحقيقة‬‫غيرها‬.
‫أن‬ ‫بينها‬ ‫فيما‬ ‫تشترك‬ ‫الحقيقة‬ ‫الحياة‬ ‫في‬ ‫الكائنات‬ ‫كل‬‫حالة‬ ‫لها‬
state‫وسلوك‬behavior.
‫الت‬ ‫كائنية‬ ‫البرمجة‬ ‫لفهم‬ ‫األساسي‬ ‫المفتاح‬ ‫هو‬ ‫الكائن‬‫وجه‬!
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫الحالة‬
‫االسم‬
‫اللون‬
‫السالسة‬
‫أم‬ ‫جائع‬‫ال‬
‫الحجم‬
‫السلوك‬
‫النباح‬
‫األشي‬ ‫جلب‬‫اء‬
‫الذيل‬ ‫هز‬
‫الركض‬
‫النوم‬
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
State
Model
Color
Year
Price
Size
Behaviors
Start
Stop
Drive
Park
FillOil
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫كا‬ ‫لكل‬ ،‫بجوارك‬ ‫الموجودة‬ ‫الكائنات‬ ‫والحظ‬ ‫اآلن‬ ‫حولك‬ ‫انظر‬‫ئن‬
‫التالية‬ ‫األسئلة‬ ‫نفسك‬ ‫اسأل‬:-
•‫؟‬ ‫الكائن‬ ‫لهذا‬ ‫المحتملة‬ ‫الخصائص‬ ‫هي‬ ‫ما‬
•‫يمكن‬ ‫التي‬ ‫أو‬ ‫بها‬ ‫يقوم‬ ‫أن‬ ‫يمكن‬ ‫التي‬ ‫السلوكيات‬ ‫هي‬ ‫ما‬‫تقوم‬ ‫أن‬
‫؟‬ ‫باستخدامه‬ ‫بها‬
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشبه‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬ ‫الكائنات‬‫في‬ ‫الكائنات‬
‫وسلوك‬ ‫خصائص‬ ‫له‬ ‫كائن‬ ‫كل‬ ‫أن‬ ‫حيث‬ ‫الواقعية‬ ‫الحياة‬.
‫الكائن‬Object‫حقول‬ ‫في‬ ‫خصائصه‬ ‫بتخزين‬ ‫يقوم‬fields‫أو‬
‫ات‬‫ر‬‫متغي‬variables‫األساليب‬ ‫خالل‬ ‫من‬ ‫سلوكه‬ ‫عن‬ ‫ويعبر‬
methods‫الدوال‬ ‫أو‬functions.
‫الـ‬ ‫تعتبر‬methods‫اآللية‬‫بين‬ ‫للتواصل‬ ‫األساسية‬‫ال‬objects‫في‬
‫البرنامج‬‫المسؤولة‬ ‫وهي‬‫خصائص‬ ‫تغيير‬ ‫عن‬‫ال‬ ‫هذا‬object.
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
Fields
currentSpeed
currentGear
currentCadence
Methods
changeSpeed
changeGear
changeCadence
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫الصنف‬/‫الفئة‬Class‫المخطط‬ ‫أو‬ ‫النموذج‬ ‫هو‬‫الذي‬‫عليه‬ ‫بناء‬ ‫يتم‬
‫م‬ ‫نسخة‬ ‫عن‬ ‫عبارة‬ ‫كائن‬ ‫كل‬ ‫يعتبر‬ ‫بحيث‬ ‫الكائنات‬ ‫إنشاء‬‫هذا‬ ‫ن‬
‫النموذج‬‫والتي‬ ‫النموذج‬ ‫في‬ ‫الموجودة‬ ‫الخصائص‬ ‫نفس‬ ‫لها‬‫قد‬
‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫قيمها‬ ‫تختلف‬.
‫نف‬ ‫من‬ ‫اجات‬‫ر‬‫الد‬ ‫من‬ ‫العديد‬ ‫ستجد‬ ‫الحقيقية‬ ‫الحياة‬ ‫في‬‫النوع‬ ‫س‬
‫م‬ ‫من‬ ،‫المكونات‬ ‫نفس‬ ‫وبالتالي‬ ‫والمخطط‬ ‫از‬‫ر‬‫الط‬ ‫نفس‬ ‫ولها‬‫نظور‬
‫هي‬ ‫اجة‬‫ر‬‫الد‬ ‫هذه‬ ‫أن‬ ‫القول‬ ‫يمكننا‬ ‫الشيئية‬ ‫البرمجة‬instance‫من‬
‫اجة‬‫ر‬‫د‬ ‫يسمى‬ ‫فئة‬ ‫أو‬ ‫صنف‬Bicycle
‫مثال‬1
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫كائن‬ ‫إنشاء‬ ‫عملية‬object‫من‬‫الصنف‬class‫استخدامه‬ ‫ثم‬‫تتم‬
‫ف‬ ‫األساسية‬ ‫بدايتها‬ ‫تكون‬ ‫والتي‬ ‫أخرى‬ ‫كائنات‬ ‫قبل‬ ‫من‬‫الـ‬ ‫ي‬main
method‫التطبيق‬ ‫بداية‬ ‫نقطة‬ ‫أو‬.
‫ف‬ ‫البرنامج‬ ‫اء‬‫ز‬‫أج‬ ‫جميع‬ ‫بناء‬ ‫يتم‬ ‫المفهوم‬ ‫هذا‬ ‫نفس‬ ‫على‬‫ي‬
‫البرن‬ ‫يتكون‬ ‫حيث‬ ‫التوجه‬ ‫كائنية‬ ‫أو‬ ‫الشيئية‬ ‫البرمجة‬‫أصناف‬ ‫من‬ ‫امج‬
Classes‫وكائنات‬Objects‫األصناف‬ ‫هذه‬ ‫من‬ ‫إنشاؤها‬ ‫يتم‬.
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬
‫الفئة‬ ‫أو‬ ‫الصنف‬CLASS
‫الصنف‬Class‫وهو‬‫لبناء‬ ‫الرئيسية‬ ‫الوحدة‬ ‫نموذج‬‫الـكائن‬Object
‫بمعنى‬‫نموذج‬ ‫أساس‬ ‫على‬ ‫كائن‬ ‫من‬ ‫أكثر‬ ‫تكوين‬ ‫يتم‬ ‫أنه‬‫البناء‬
‫األساسي‬‫الـ‬ ‫وهو‬Class‫ويمكن‬‫تشبيه‬‫بالقالب‬ ‫الصنف‬‫الذي‬‫يقوم‬
‫أل‬ ‫الكائن‬ ‫هذا‬ ‫استخدام‬ ‫ذلك‬ ‫بعد‬ ‫ويمكن‬ ‫الكائن‬ ‫بتشكيل‬‫غرض‬ ‫ي‬
‫مطلوب‬.
‫الكائن‬OBJECT
‫الكائن‬Object‫القا‬ ‫أو‬ ‫الصنف‬ ‫من‬ ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫الوحدة‬ ‫هو‬‫لب‬
‫بها‬ ‫المتعلقة‬ ‫والسلوكيات‬ ‫الخصائص‬ ‫على‬ ‫وتحتوى‬‫وهو‬‫يتم‬ ‫الذي‬
‫ال‬ ‫وليس‬ ‫معه‬ ‫والتعامل‬ ‫استخدامه‬Class.
‫الفئة‬ ‫أو‬ ‫الصنف‬CLASS
‫الصنف‬Class‫أو‬ ‫نموذج‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬
‫للكائنات‬ ‫مخطط‬Objects‫مجمو‬ ‫في‬ ‫بينها‬ ‫فيما‬ ‫تشترك‬ ‫التي‬‫عة‬
‫الخصائص‬ ‫من‬.
 All object-oriented programming languages support
the concept of a class. a class provides a template for
objects that share common characteristics
‫الكائن‬OBJECT
‫الكائن‬Object‫الـ‬ ‫من‬ ‫نسخة‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫الجافا‬ ‫لغة‬ ‫في‬Class،
‫الـ‬ ‫يتكون‬Object‫الح‬ ‫في‬ ‫والمتمثلة‬ ‫البيانات‬ ‫من‬ ‫مجموعة‬ ‫من‬‫قول‬
‫الساكنة‬ ‫غير‬non-static fields‫الـ‬ ‫في‬ ‫المعرفة‬Class‫والعمليات‬
‫عليها‬ ‫المعرفة‬.
 A Java object is an instance of a class. Objects are
collections of data values, the individual elements of
which are described by the non-static field definitions
of the class and defined methods.
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مبادئ‬
public class Employee
private String id
public String lastName
public String getId()
public void setId(String id)
….
fields
methods
id = 211
lastName = Hasan
Employee
id = 301
lastName = Ibrahim
Employee
new Employee
new Employee
‫فوائد‬‫البرمجة‬‫التوجه‬ ‫كائنية‬
‫م‬ ‫عدة‬ ‫يوفر‬ ‫البرمجي‬ ‫الكود‬ ‫بناء‬ ‫في‬ ‫الكائن‬ ‫مفهوم‬ ‫استخدام‬‫ايا‬‫ز‬:
‫التجزئة‬Modularity
‫المعلومات‬ ‫إخفاء‬Information-hiding
‫الكود‬ ‫استخدام‬ ‫إعادة‬Code re-use
‫قابل‬‫ي‬‫والتصحيح‬ ‫االستبدال‬ ‫ة‬Pluggability and debugging ease
‫ار‬‫ر‬‫التك‬ ‫من‬ ‫التخلص‬Eliminate Redundant Code
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مبادئ‬
‫أساسي‬ ‫مفاهيم‬ ‫عدة‬ ‫على‬ ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫تعتمد‬‫هي‬ ‫ة‬:-
‫التغليف‬Encapsulation
‫التجريد‬Abstraction
‫اثة‬‫ر‬‫الو‬Inheritance
‫األشكال‬ ‫تعدد‬Polymorphism
‫التغليف‬ENCAPSULATION
‫التغليف‬Encapsulation‫البيانات‬ ‫بإخفاء‬ ‫يعرف‬ ‫قد‬ ‫ما‬ ‫أو‬Data
Hiding‫الـ‬ ‫قدرة‬ ‫وهو‬object‫اءات‬‫ر‬‫واإلج‬ ‫الخصائص‬ ‫إخفاء‬ ‫على‬
‫با‬ ‫مع‬ ‫التعامل‬ ‫اتاحة‬ ‫ثم‬ ‫البرنامج‬ ‫اء‬‫ز‬‫أج‬ ‫باقي‬ ‫عن‬ ‫به‬ ‫الخاصة‬‫اء‬‫ز‬‫أج‬ ‫قي‬
‫عامة‬ ‫دوال‬ ‫خالل‬ ‫من‬ ‫البرنامج‬public methods‫هذا‬ ‫يوفرها‬
‫الـ‬object‫معلوما‬ ‫أي‬ ‫معرفة‬ ‫دون‬ ‫خاللها‬ ‫من‬ ‫معه‬ ‫التفاعل‬ ‫يتم‬‫ت‬
‫الـ‬ ‫لهذا‬ ‫الداخلية‬ ‫الحقول‬ ‫عن‬ ‫أو‬ ‫تنفيذها‬ ‫كيفية‬ ‫عن‬object.
‫التغليف‬ENCAPSULATION
F() x
Methods
Property
‫مثال‬2
ACCESS MODIFIERS
‫لل‬ ‫الوصول‬ ‫إمكانية‬ ‫تحدد‬ ‫مفتاحية‬ ‫كلمات‬ ‫عن‬ ‫عبارة‬ ‫هي‬Classes
‫ال‬ ‫و‬Variables‫ال‬ ‫و‬Methods‫ال‬ ‫من‬ ‫خاص‬ ‫جزء‬ ‫وتعتبر‬Syntax
‫باللغة‬ ‫الخاص‬‫ال‬ ‫مفهوم‬ ‫لتعزيز‬ ‫تستخدم‬ ‫والتي‬encapsulation.
‫ال‬ ‫المثال‬ ‫سبيل‬ ‫على‬C++‫لها‬3‫فلها‬ ‫جافا‬ ‫أما‬ ‫وصول‬ ‫معدالت‬
‫وصول‬ ‫معدالت‬ ‫أربعة‬!
ACCESS MODIFIERS
Access Modifier ‫ال‬ ‫داخل‬Class ‫خارج‬‫ال‬Class
‫ال‬ ‫داخل‬Package
‫داخل‬‫ال‬Subclass
‫ال‬ ‫خارج‬Package
‫خارج‬‫ال‬Package
Private ‫نعم‬ ‫ال‬ ‫ال‬ ‫ال‬
Default ‫نعم‬ ‫نعم‬ ‫ال‬ ‫ال‬
Protected ‫نعم‬ ‫نعم‬ ‫نعم‬ ‫ال‬
Public ‫نعم‬ ‫نعم‬ ‫نعم‬ ‫نعم‬
‫التجريد‬ABSTRACTION
‫الخاصة‬ ‫والتفاصيل‬ ‫الخصائص‬ ‫حجب‬ ‫عملية‬‫ب‬‫و‬ ‫الكائن‬‫اإلبقاء‬
‫فقط‬ ‫األساسية‬ ‫والهيكلية‬ ‫العمليات‬ ‫عن‬ ‫واإلفصاح‬.
‫ال‬ ‫يعتبر‬abstraction‫إلى‬ ‫تؤدي‬ ‫التي‬ ‫الهامة‬ ‫المفاهيم‬ ‫من‬
‫المت‬ ‫ات‬‫ر‬‫التأثي‬ ‫وتقليل‬ ‫البرنامج‬ ‫في‬ ‫التعقيد‬ ‫تقليل‬‫التغيير‬ ‫على‬ ‫رتبة‬
‫والتعديل‬.
‫التجريد‬ABSTRACTION
‫التجريد‬ABSTRACTION
F() x
F()
F() F() F()
x
x x
‫أبسط‬ ‫تعامل‬ ‫واجهة‬
‫تأث‬ ‫من‬ ‫التقليل‬‫ير‬
‫والتعد‬ ‫التغيير‬‫يل‬
‫مثال‬2
‫اثة‬‫ر‬‫الو‬INHERITANCE
‫اثة‬‫ر‬‫الو‬inheritance‫للـ‬ ‫تتيح‬class‫الخصائص‬ ‫تضمين‬‫والسلوك‬‫يات‬
‫بـ‬ ‫الخاصة‬class‫آخر‬.
‫يسمى‬ ‫الوارث‬ ‫الصنف‬subclass‫منه‬ ‫والموروث‬superclass.
‫في‬‫للـ‬ ‫يمكن‬ ‫الجافا‬class‫له‬ ‫يكون‬ ‫أن‬superclass‫فقط‬ ‫واحد‬!
‫ال‬ ‫من‬ ‫متناهي‬ ‫ال‬ ‫وعدد‬subclasses.
‫اثة‬‫ر‬‫الو‬INHERITANCE
‫مثال‬1
‫اثة‬‫ر‬‫الو‬INHERITANCE
id
alpha
visibility
View
text
TextView
src
ImageView
progress
ProgressBar
‫الـ‬ABSTRACT CLASS
‫الـ‬Abstract Class‫عن‬ ‫عبارة‬ ‫هو‬ ‫المجرد‬ ‫الصنف‬ ‫أو‬Class‫يمكن‬ ‫ال‬
‫عمل‬instance‫إنشاء‬ ‫يتم‬ ‫أن‬ ‫يمكن‬ ‫ال‬ ‫أنه‬ ‫أي‬ ‫منه‬object‫من‬
‫ال‬ ‫هذا‬Class.
‫ال‬ ‫تعريف‬ ‫يتم‬Class‫بأنه‬abstract‫كلمة‬ ‫إضافة‬ ‫خالل‬ ‫من‬
abstract‫تعريفه‬ ‫إلى‬.
‫ال‬ ‫يحتوى‬ ‫قد‬abstract class‫على‬abstract method‫واحدة‬
‫أي‬ ‫على‬ ‫يحتوى‬ ‫ال‬ ‫قد‬ ‫أو‬ ‫أكثر‬ ‫أو‬abstract method.
‫الـ‬ABSTRACT CLASS
‫الـ‬abstract method‫هي‬‫عبارة‬‫عن‬method‫ال‬‫تحتوى‬‫على‬
implementation‫أي‬‫أنها‬‫ليس‬‫لها‬body‫وإنما‬‫فقط‬‫هي‬‫عبارة‬
‫عن‬‫تعريف‬declaration‫فقط‬.
‫الـ‬INTERFACE
‫ال‬ ‫أن‬ ‫القوم‬ ‫يمكننا‬ ‫عام‬ ‫بشكل‬interface‫من‬ ‫مجموعة‬ ‫هو‬
‫ال‬related methods‫أي‬ ‫على‬ ‫تحتوى‬ ‫ال‬implementations
‫الـ‬ ‫أن‬ ‫القول‬ ‫يمكن‬Interface‫يشبه‬‫الـ‬ ‫تركيبته‬ ‫في‬class‫أنه‬ ‫إال‬
‫يحتوى‬‫ال‬ ‫على‬ ‫فقط‬signature‫بالـ‬ ‫الخاص‬methods‫دون‬
‫الـ‬implementation‫عمل‬ ‫يتم‬ ‫أن‬ ‫يجب‬ ‫والتي‬implementation
‫ال‬ ‫لهذا‬ ‫اثة‬‫ر‬‫و‬ ‫بعمل‬ ‫سيقوم‬ ‫الذي‬ ‫الكالس‬ ‫في‬ ‫لها‬interface.
‫الـ‬INTERFACE
‫تتم‬‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫عملية‬interface‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫عن‬ ‫مختلف‬ ‫بشكل‬
class‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬ ‫حيث‬implements‫بدال‬‫من‬
‫المفتاحية‬ ‫الكلمة‬extends.
‫قيام‬ ‫عند‬ ‫اثة‬‫ر‬‫الو‬ ‫تعدد‬ ‫من‬ ‫نوع‬ ‫يحدث‬class‫بعمل‬
implements‫من‬ ‫ألكثر‬interface.
‫الـ‬INTERFACE
‫عمل‬implement‫ل‬interface‫لل‬ ‫يسمح‬class‫أكثر‬ ‫يكون‬ ‫أن‬
‫به‬ ‫الخاص‬ ‫السلوك‬ ‫حيث‬ ‫من‬ ‫نظامية‬.
‫ال‬ ‫يشكل‬Interface‫ال‬ ‫بين‬ ‫ما‬ ‫عقد‬class‫ويتم‬ ‫البرنامج‬ ‫وباقي‬
‫ال‬ ‫مرحلة‬ ‫في‬ ‫العقد‬ ‫هذا‬ ‫تنفيذ‬complication‫اجبار‬ ‫يتم‬ ‫بحيث‬
‫بعمل‬ ‫يقوم‬ ‫الذي‬ ‫الكالس‬implement‫ل‬interface‫تعريف‬ ‫على‬
‫ال‬ ‫جميع‬methods‫ال‬ ‫يحتويها‬ ‫التي‬interface.
‫مثال‬4
‫األوجه‬ ‫تعدد‬POLYMORPHISM
‫األوجه‬ ‫تعدد‬Polymorphism‫على‬ ‫المختلفة‬ ‫الكائنات‬ ‫قدرة‬ ‫هو‬
‫األسلوب‬ ‫أو‬ ‫الرسالة‬ ‫لنفس‬ ‫مختلف‬ ‫بشكل‬ ‫االستجابة‬.
‫تعريف‬ ‫يمكنك‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬method‫االسم‬ ‫بنفس‬ ‫أكثر‬ ‫أو‬
‫التنفيذ‬ ‫اختالف‬ ‫مع‬implementation.
‫األوجه‬ ‫تعدد‬POLYMORPHISM
‫خالل‬ ‫من‬ ‫األمر‬ ‫هذا‬ ‫يتم‬ ‫كان‬ ‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬ ‫لغات‬ ‫في‬if .. else
‫أو‬switch .. case‫وبن‬ ‫البيانات‬ ‫هيكل‬ ‫نوع‬ ‫فحص‬ ‫يتم‬ ‫بحيث‬‫عليه‬ ‫اء‬
‫ال‬ ‫تحديد‬action‫أن‬ ‫يكفي‬ ‫الشيئية‬ ‫البرمجة‬ ‫لغات‬ ‫في‬ ‫ولكن‬‫تقوم‬
‫ال‬ ‫باستدعاء‬method‫المطلوب‬‫ة‬‫تنفي‬ ‫لها‬ ‫سيكون‬ ‫بدورها‬ ‫والتي‬‫ذ‬
‫ال‬ ‫صنف‬ ‫أو‬ ‫نوع‬ ‫حسب‬ ‫مختلف‬objects.
‫األوجه‬ ‫تعدد‬POLYMORPHISM
int x
Int y
Shape
radius
Circle
width
height
Rectangle
side_length
Square
‫األوجه‬ ‫تعدد‬POLYMORPHISM
‫األوجه‬ ‫تعدد‬POLYMORPHISM
‫مثال‬5
‫الحزمة‬PACKAGE
‫الحزمة‬package‫عن‬ ‫عبارة‬ ‫هي‬namespace‫باحتواء‬ ‫تقوم‬
‫ال‬classes‫وال‬interfaces‫ببعضها‬ ‫المتعلقة‬.
‫ال‬ ‫اعتبار‬ ‫يمكنك‬package‫الخاص‬ ‫التخزين‬ ‫وحدة‬ ‫في‬ ‫مجلد‬ ‫بمثابة‬
‫بصفحات‬ ‫االحتفاظ‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ‫يمكنك‬ ‫حيث‬ ،‫بك‬HTML‫في‬
‫وال‬ ‫آخر‬ ‫مجلد‬ ‫في‬ ‫والصور‬ ‫مجلد‬scripts‫وهكذا‬ ‫آخر‬ ‫مجلد‬ ‫في‬.
‫اجع‬‫ر‬‫الم‬
https://docs.oracle.com
https://www.wikipedia.org
https://medium.com
‫تعليم‬ ‫رحلة‬ ‫لكم‬ ‫أتمنى‬‫ية‬
‫ممتعة‬


More Related Content

What's hot

مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البياناتMahmoud Almadhoun
 
اسئلة نهائية لمقرر البرمجة المرئية - 1337
اسئلة نهائية لمقرر البرمجة المرئية - 1337اسئلة نهائية لمقرر البرمجة المرئية - 1337
اسئلة نهائية لمقرر البرمجة المرئية - 1337جامعة القدس المفتوحة
 
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptx
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptxعرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptx
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptxMoetazHM
 
مقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptxمقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptxanasalsaaydeh
 
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية Mahmoud Alfarra
 
سلسلة تعلم البرمجة بلغة C / C++ - 1
سلسلة تعلم البرمجة بلغة C / C++  - 1سلسلة تعلم البرمجة بلغة C / C++  - 1
سلسلة تعلم البرمجة بلغة C / C++ - 1بندر المجلاد
 
software engineering هندسة البرمجيات
software engineering هندسة البرمجياتsoftware engineering هندسة البرمجيات
software engineering هندسة البرمجياتHacen Dadda
 
مكونات الحاسوب
مكونات الحاسوبمكونات الحاسوب
مكونات الحاسوبEyad Almasri
 
Chapter 3 servlet & jsp
Chapter 3 servlet & jspChapter 3 servlet & jsp
Chapter 3 servlet & jspJafar Nesargi
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات Mohamed Reda
 
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdf
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdfكتاب تعلم الاكسل من الصفر حتى الإحتراف.pdf
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdfAbdalkaherAhmed
 
مقدمة في البرمجة
مقدمة في البرمجةمقدمة في البرمجة
مقدمة في البرمجةgueste902d
 
مكونات نظام المعلومات
مكونات نظام المعلوماتمكونات نظام المعلومات
مكونات نظام المعلوماتProf. Othman Alsalloum
 
أساليب تشفير البيانات، بناء مقاطع التشفير
أساليب تشفير البيانات، بناء مقاطع التشفيرأساليب تشفير البيانات، بناء مقاطع التشفير
أساليب تشفير البيانات، بناء مقاطع التشفيرOmar Alabri
 
شبكات الكمبيوتر
شبكات الكمبيوترشبكات الكمبيوتر
شبكات الكمبيوترasmaa saso
 
الجداول الالكترونية
الجداول الالكترونيةالجداول الالكترونية
الجداول الالكترونيةMoselhy Hussein
 
شرح برنامج الورود
شرح برنامج الورودشرح برنامج الورود
شرح برنامج الورودHanaa Ahmed
 

What's hot (20)

مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البيانات
 
اسئلة نهائية لمقرر البرمجة المرئية - 1337
اسئلة نهائية لمقرر البرمجة المرئية - 1337اسئلة نهائية لمقرر البرمجة المرئية - 1337
اسئلة نهائية لمقرر البرمجة المرئية - 1337
 
المحاضرة الثالثة لغات البرمجة
المحاضرة الثالثة  لغات البرمجةالمحاضرة الثالثة  لغات البرمجة
المحاضرة الثالثة لغات البرمجة
 
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptx
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptxعرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptx
عرض تقديمي - معتز حاج محمد - اساسيات البرمجة.pptx
 
مقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptxمقدمة_في_الحاسوب.pptx
مقدمة_في_الحاسوب.pptx
 
أنواع نظم المعلومات
أنواع نظم المعلوماتأنواع نظم المعلومات
أنواع نظم المعلومات
 
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية البرمجة الهدفية بلغة جافا - مفاهيم أساسية
البرمجة الهدفية بلغة جافا - مفاهيم أساسية
 
سلسلة تعلم البرمجة بلغة C / C++ - 1
سلسلة تعلم البرمجة بلغة C / C++  - 1سلسلة تعلم البرمجة بلغة C / C++  - 1
سلسلة تعلم البرمجة بلغة C / C++ - 1
 
software engineering هندسة البرمجيات
software engineering هندسة البرمجياتsoftware engineering هندسة البرمجيات
software engineering هندسة البرمجيات
 
مكونات الحاسوب
مكونات الحاسوبمكونات الحاسوب
مكونات الحاسوب
 
Chapter 3 servlet & jsp
Chapter 3 servlet & jspChapter 3 servlet & jsp
Chapter 3 servlet & jsp
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات
 
انواع صفحات الويب
انواع صفحات الويب انواع صفحات الويب
انواع صفحات الويب
 
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdf
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdfكتاب تعلم الاكسل من الصفر حتى الإحتراف.pdf
كتاب تعلم الاكسل من الصفر حتى الإحتراف.pdf
 
مقدمة في البرمجة
مقدمة في البرمجةمقدمة في البرمجة
مقدمة في البرمجة
 
مكونات نظام المعلومات
مكونات نظام المعلوماتمكونات نظام المعلومات
مكونات نظام المعلومات
 
أساليب تشفير البيانات، بناء مقاطع التشفير
أساليب تشفير البيانات، بناء مقاطع التشفيرأساليب تشفير البيانات، بناء مقاطع التشفير
أساليب تشفير البيانات، بناء مقاطع التشفير
 
شبكات الكمبيوتر
شبكات الكمبيوترشبكات الكمبيوتر
شبكات الكمبيوتر
 
الجداول الالكترونية
الجداول الالكترونيةالجداول الالكترونية
الجداول الالكترونية
 
شرح برنامج الورود
شرح برنامج الورودشرح برنامج الورود
شرح برنامج الورود
 

Similar to Object Oriented Programming

البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxSultanAlAnazi42
 
لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)anees abu-hmaid
 
الفصل الثانى
الفصل الثانىالفصل الثانى
الفصل الثانىHanaa Ahmed
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافMohamed E. Saleh
 
Java oop by_salem_adrugi
Java oop by_salem_adrugiJava oop by_salem_adrugi
Java oop by_salem_adrugiSalem Adrugi
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى PhpPrmigo
 
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005Hanaa Ahmed
 
Sixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsSixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsAliMohammad155
 
انماط التجول في برامج الوسائط المتعددة
انماط التجول في برامج الوسائط المتعددةانماط التجول في برامج الوسائط المتعددة
انماط التجول في برامج الوسائط المتعددةahmad al-dhafeeri
 
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجيمقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجيHend Al-Khalifa
 
hz-ilovepdf-compressed
hz-ilovepdf-compressedhz-ilovepdf-compressed
hz-ilovepdf-compressedhak moon
 
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfأريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfNadiaMohamedSherif
 
دوال البرمجة Functions and methods in programming
دوال البرمجة Functions and methods in programmingدوال البرمجة Functions and methods in programming
دوال البرمجة Functions and methods in programmingIslam Gharib
 

Similar to Object Oriented Programming (20)

البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
 
لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)
 
الفصل الثانى
الفصل الثانىالفصل الثانى
الفصل الثانى
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
 
البرمجة
البرمجةالبرمجة
البرمجة
 
الدرس 2.pdf
الدرس 2.pdfالدرس 2.pdf
الدرس 2.pdf
 
Android 1
Android 1Android 1
Android 1
 
Java oop by_salem_adrugi
Java oop by_salem_adrugiJava oop by_salem_adrugi
Java oop by_salem_adrugi
 
المحاضرة الثامنة وورد2013.
المحاضرة الثامنة  وورد2013.المحاضرة الثامنة  وورد2013.
المحاضرة الثامنة وورد2013.
 
الدرس 3 .pdf
الدرس 3 .pdfالدرس 3 .pdf
الدرس 3 .pdf
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
 
الدرس 1.pdf
الدرس 1.pdfالدرس 1.pdf
الدرس 1.pdf
 
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
 
Sixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsSixth session software engineering usecase diagrams
Sixth session software engineering usecase diagrams
 
انماط التجول في برامج الوسائط المتعددة
انماط التجول في برامج الوسائط المتعددةانماط التجول في برامج الوسائط المتعددة
انماط التجول في برامج الوسائط المتعددة
 
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجيمقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
 
hz-ilovepdf-compressed
hz-ilovepdf-compressedhz-ilovepdf-compressed
hz-ilovepdf-compressed
 
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfأريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
 
دوال البرمجة Functions and methods in programming
دوال البرمجة Functions and methods in programmingدوال البرمجة Functions and methods in programming
دوال البرمجة Functions and methods in programming
 
Chapter4 part1
Chapter4 part1Chapter4 part1
Chapter4 part1
 

Object Oriented Programming

  • 2. ‫مقدمة‬ ‫هي‬ ‫البرمجة‬‫ال‬ ‫لحل‬ ‫الرياضية‬ ‫والوسائل‬ ‫الطرق‬ ‫استخدام‬‫مشكالت‬ ‫وسيط‬ ‫باستخدام‬(‫هو‬‫الحاسوب‬)‫المعا‬ ‫تلك‬ ‫ترجمة‬ ‫يمكنه‬‫دالت‬ ‫بمخرجات‬ ‫والخروج‬ ‫معينة‬ ‫بمهام‬ ‫للقيام‬. ‫يت‬ ‫التي‬ ‫البرمجية‬ ‫التعليمات‬ ‫من‬ ‫مجموعة‬ ‫هو‬ ‫البرنامج‬‫تحليلها‬ ‫م‬ ‫معينة‬ ‫مهام‬ ‫أو‬ ‫مهمة‬ ‫ألداء‬ ‫الحاسوب‬ ‫بواسطة‬ ‫وتنفيذها‬.
  • 3. ‫للبرنامج‬ ‫األساسية‬ ‫المهام‬ ‫هي‬ ‫البرمجة‬ ‫لغات‬ ‫توفرها‬ ‫التي‬ ‫األساسية‬ ‫المهام‬: ‫قبول‬‫المدخالت‬ ‫تخزين‬‫البيانات‬ ‫معالجة‬‫البيانات‬ ‫إنتاج‬‫المخرجات‬
  • 4. ‫البرمجة‬ ‫وأنماط‬ ‫طرق‬ ‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬  Procedural Programming ‫كائنية‬ ‫أو‬ ‫الشيئية‬ ‫البرمجة‬‫التوجه‬  Object Oriented Programming
  • 5. ‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬ ‫البرمجة‬‫ائية‬‫ر‬‫اإلج‬(‫باإلنجليزية‬:Procedural Programming)‫هي‬ ‫برمجة‬ ‫نمط‬‫اءات‬‫ر‬‫اإلج‬ ‫أو‬ ‫المهام‬ ‫على‬ ‫أساسي‬ ‫بشكل‬ ‫يركز‬ ‫المخرجات‬ ‫إلنتاج‬ ‫المطلوبة‬. ‫اءات‬‫ر‬‫إج‬ ‫أو‬ ‫مهام‬ ‫إلى‬ ‫البرنامج‬ ‫تقسيم‬ ‫يتم‬ ‫النمط‬ ‫هذا‬ ‫في‬‫بحيث‬ ‫ثم‬ ‫متسلسل‬ ‫بشكل‬ ‫البرمجية‬ ‫التعليمات‬ ‫كتابة‬ ‫يتم‬‫استخدام‬ ‫وتن‬ ‫استدعائها‬ ‫سيتم‬ ‫التي‬ ‫اءات‬‫ر‬‫اإلج‬ ‫أي‬ ‫لتحديد‬ ‫المنطق‬‫فيذها‬.
  • 9. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫الشيئية‬ ‫البرمجة‬ ‫أو‬ ‫ه‬ ُّ ‫التوج‬ ‫كائنية‬ ‫البرمجة‬ (‫باإلنجليزية‬:Object Oriented Programming - OOP(‫وهي‬ ‫تسم‬ ‫وحدات‬ ‫إلى‬ ‫البرنامج‬ ‫يقسم‬ ‫فيه‬ ‫برمجة‬ ‫نمط‬ ‫عن‬ ‫عبارة‬‫ى‬ ‫الكائنات‬Objects،‫البيانا‬ ‫على‬ ‫تشمل‬ ‫وحدة‬ ‫عن‬ ‫عبارة‬ ‫كائن‬ ‫كل‬‫ت‬ (‫والثوابت‬ ‫ات‬‫ر‬‫المتغي‬)‫والعمليات‬(‫الدوال‬.) ‫بعضه‬ ‫مع‬ ‫وربطها‬ ‫الكائنات‬ ‫بواسطة‬ ‫البرنامج‬ ‫بناء‬ ‫يتم‬‫البعض‬ ‫ا‬ ‫كائن‬ ‫بكل‬ ‫الخاصة‬ ‫االستخدام‬ ‫وواجهات‬ ‫أو‬ ‫الدوال‬ ‫باستخدام‬.
  • 11. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫لغات‬ ‫هي‬ ‫الشيئية‬ ‫البرمجة‬ ‫تدعم‬ ‫التي‬ ‫البرمجة‬ ‫لغات‬ ‫أشهر‬ ‫من‬:- ‫جافا‬ ‫لغة‬Java ‫بايثون‬ ‫لغة‬Python ‫لغة‬‫دلفي‬Delphi ‫شارب‬ ‫سي‬ ‫لغة‬C#
  • 12. ‫البرمجة‬ ‫مفهوم‬‫التوجه‬ ‫كائنية‬ ‫التوجه‬ ‫غرضية‬ ‫البرمجة‬ ‫المنحى‬ ‫كائنية‬ ‫البرمجة‬ ‫بالعناصر‬ ‫البرمجة‬ ‫الكائ‬ ‫نحو‬ ‫الموجهة‬ ‫البرمجة‬‫نات‬ ‫بالكائنات‬ ‫البرمجة‬ ‫أسماء‬‫أخرى‬:- ‫الكينونية‬ ‫البرمجة‬ ‫البرمجة‬‫المنحى‬ ‫شيئية‬. ‫الموجهة‬ ‫البرمجة‬ ‫الكائنية‬ ‫البرمجة‬ ‫التوج‬ ‫الكائنية‬ ‫البرمجة‬‫ه‬
  • 13. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫البر‬ ‫في‬ ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫بتطبيق‬ ‫البدء‬ ‫قبل‬‫بك‬ ‫الخاصة‬ ‫امج‬ ‫المفاهي‬ ‫بعض‬ ‫تعلم‬ ‫أوال‬ ‫عليك‬ ‫يجب‬ ‫كود‬ ‫أي‬ ‫كتابة‬ ‫وقبل‬‫م‬ ‫األساسية‬. ‫م‬ ‫األساسية‬ ‫المفاهيم‬ ‫لهذه‬ ‫سنتطرق‬ ‫المحاضرة‬ ‫هذه‬ ‫في‬‫ثل‬: ‫الكائن‬Object‫الصنف‬/‫الفئة‬Class‫اثة‬‫ر‬‫الو‬Inheritance‫واجهة‬ ‫التعامل‬Interface‫الحزمة‬Package‫الجمل‬ ‫تركيبة‬ ‫عن‬ ‫نبذة‬ ‫مع‬ ‫البرمجية‬(Syntax)‫الوقت‬ ‫نفس‬ ‫في‬.
  • 14. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫بال‬ ‫البرمجة‬ ‫ربط‬ ‫على‬ ‫الشيئية‬ ‫البرمجة‬ ‫فلسفة‬ ‫تقوم‬‫الواقعية‬ ‫حياة‬ ‫وعمليا‬ ‫خصائصه‬ ‫له‬ ‫كائن‬ ‫عن‬ ‫عبارة‬ ‫حولنا‬ ‫شيء‬ ‫كل‬ ‫أن‬ ‫حيث‬‫ته‬. ‫ف‬ ‫الكائنات‬ ‫على‬ ‫األمثلة‬ ‫من‬ ‫العديد‬ ‫ستجد‬ ‫حولك‬ ‫نظرت‬ ‫إذا‬‫الحياة‬ ‫ي‬ ‫و‬ ‫الهوائية‬ ‫اجة‬‫ر‬‫الد‬ ،‫الكرسي‬ ،‫المكتب‬ ،‫التلفاز‬ ‫مثل‬ ‫الحقيقة‬‫غيرها‬. ‫أن‬ ‫بينها‬ ‫فيما‬ ‫تشترك‬ ‫الحقيقة‬ ‫الحياة‬ ‫في‬ ‫الكائنات‬ ‫كل‬‫حالة‬ ‫لها‬ state‫وسلوك‬behavior. ‫الت‬ ‫كائنية‬ ‫البرمجة‬ ‫لفهم‬ ‫األساسي‬ ‫المفتاح‬ ‫هو‬ ‫الكائن‬‫وجه‬!
  • 15. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫الحالة‬ ‫االسم‬ ‫اللون‬ ‫السالسة‬ ‫أم‬ ‫جائع‬‫ال‬ ‫الحجم‬ ‫السلوك‬ ‫النباح‬ ‫األشي‬ ‫جلب‬‫اء‬ ‫الذيل‬ ‫هز‬ ‫الركض‬ ‫النوم‬
  • 16. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ State Model Color Year Price Size Behaviors Start Stop Drive Park FillOil
  • 17. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫كا‬ ‫لكل‬ ،‫بجوارك‬ ‫الموجودة‬ ‫الكائنات‬ ‫والحظ‬ ‫اآلن‬ ‫حولك‬ ‫انظر‬‫ئن‬ ‫التالية‬ ‫األسئلة‬ ‫نفسك‬ ‫اسأل‬:- •‫؟‬ ‫الكائن‬ ‫لهذا‬ ‫المحتملة‬ ‫الخصائص‬ ‫هي‬ ‫ما‬ •‫يمكن‬ ‫التي‬ ‫أو‬ ‫بها‬ ‫يقوم‬ ‫أن‬ ‫يمكن‬ ‫التي‬ ‫السلوكيات‬ ‫هي‬ ‫ما‬‫تقوم‬ ‫أن‬ ‫؟‬ ‫باستخدامه‬ ‫بها‬
  • 18. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشبه‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬ ‫الكائنات‬‫في‬ ‫الكائنات‬ ‫وسلوك‬ ‫خصائص‬ ‫له‬ ‫كائن‬ ‫كل‬ ‫أن‬ ‫حيث‬ ‫الواقعية‬ ‫الحياة‬. ‫الكائن‬Object‫حقول‬ ‫في‬ ‫خصائصه‬ ‫بتخزين‬ ‫يقوم‬fields‫أو‬ ‫ات‬‫ر‬‫متغي‬variables‫األساليب‬ ‫خالل‬ ‫من‬ ‫سلوكه‬ ‫عن‬ ‫ويعبر‬ methods‫الدوال‬ ‫أو‬functions. ‫الـ‬ ‫تعتبر‬methods‫اآللية‬‫بين‬ ‫للتواصل‬ ‫األساسية‬‫ال‬objects‫في‬ ‫البرنامج‬‫المسؤولة‬ ‫وهي‬‫خصائص‬ ‫تغيير‬ ‫عن‬‫ال‬ ‫هذا‬object.
  • 19. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ Fields currentSpeed currentGear currentCadence Methods changeSpeed changeGear changeCadence
  • 20. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫الصنف‬/‫الفئة‬Class‫المخطط‬ ‫أو‬ ‫النموذج‬ ‫هو‬‫الذي‬‫عليه‬ ‫بناء‬ ‫يتم‬ ‫م‬ ‫نسخة‬ ‫عن‬ ‫عبارة‬ ‫كائن‬ ‫كل‬ ‫يعتبر‬ ‫بحيث‬ ‫الكائنات‬ ‫إنشاء‬‫هذا‬ ‫ن‬ ‫النموذج‬‫والتي‬ ‫النموذج‬ ‫في‬ ‫الموجودة‬ ‫الخصائص‬ ‫نفس‬ ‫لها‬‫قد‬ ‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫قيمها‬ ‫تختلف‬. ‫نف‬ ‫من‬ ‫اجات‬‫ر‬‫الد‬ ‫من‬ ‫العديد‬ ‫ستجد‬ ‫الحقيقية‬ ‫الحياة‬ ‫في‬‫النوع‬ ‫س‬ ‫م‬ ‫من‬ ،‫المكونات‬ ‫نفس‬ ‫وبالتالي‬ ‫والمخطط‬ ‫از‬‫ر‬‫الط‬ ‫نفس‬ ‫ولها‬‫نظور‬ ‫هي‬ ‫اجة‬‫ر‬‫الد‬ ‫هذه‬ ‫أن‬ ‫القول‬ ‫يمكننا‬ ‫الشيئية‬ ‫البرمجة‬instance‫من‬ ‫اجة‬‫ر‬‫د‬ ‫يسمى‬ ‫فئة‬ ‫أو‬ ‫صنف‬Bicycle ‫مثال‬1
  • 21. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مفهوم‬ ‫كائن‬ ‫إنشاء‬ ‫عملية‬object‫من‬‫الصنف‬class‫استخدامه‬ ‫ثم‬‫تتم‬ ‫ف‬ ‫األساسية‬ ‫بدايتها‬ ‫تكون‬ ‫والتي‬ ‫أخرى‬ ‫كائنات‬ ‫قبل‬ ‫من‬‫الـ‬ ‫ي‬main method‫التطبيق‬ ‫بداية‬ ‫نقطة‬ ‫أو‬. ‫ف‬ ‫البرنامج‬ ‫اء‬‫ز‬‫أج‬ ‫جميع‬ ‫بناء‬ ‫يتم‬ ‫المفهوم‬ ‫هذا‬ ‫نفس‬ ‫على‬‫ي‬ ‫البرن‬ ‫يتكون‬ ‫حيث‬ ‫التوجه‬ ‫كائنية‬ ‫أو‬ ‫الشيئية‬ ‫البرمجة‬‫أصناف‬ ‫من‬ ‫امج‬ Classes‫وكائنات‬Objects‫األصناف‬ ‫هذه‬ ‫من‬ ‫إنشاؤها‬ ‫يتم‬.
  • 23. ‫الفئة‬ ‫أو‬ ‫الصنف‬CLASS ‫الصنف‬Class‫وهو‬‫لبناء‬ ‫الرئيسية‬ ‫الوحدة‬ ‫نموذج‬‫الـكائن‬Object ‫بمعنى‬‫نموذج‬ ‫أساس‬ ‫على‬ ‫كائن‬ ‫من‬ ‫أكثر‬ ‫تكوين‬ ‫يتم‬ ‫أنه‬‫البناء‬ ‫األساسي‬‫الـ‬ ‫وهو‬Class‫ويمكن‬‫تشبيه‬‫بالقالب‬ ‫الصنف‬‫الذي‬‫يقوم‬ ‫أل‬ ‫الكائن‬ ‫هذا‬ ‫استخدام‬ ‫ذلك‬ ‫بعد‬ ‫ويمكن‬ ‫الكائن‬ ‫بتشكيل‬‫غرض‬ ‫ي‬ ‫مطلوب‬.
  • 24. ‫الكائن‬OBJECT ‫الكائن‬Object‫القا‬ ‫أو‬ ‫الصنف‬ ‫من‬ ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫الوحدة‬ ‫هو‬‫لب‬ ‫بها‬ ‫المتعلقة‬ ‫والسلوكيات‬ ‫الخصائص‬ ‫على‬ ‫وتحتوى‬‫وهو‬‫يتم‬ ‫الذي‬ ‫ال‬ ‫وليس‬ ‫معه‬ ‫والتعامل‬ ‫استخدامه‬Class.
  • 25. ‫الفئة‬ ‫أو‬ ‫الصنف‬CLASS ‫الصنف‬Class‫أو‬ ‫نموذج‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬ ‫للكائنات‬ ‫مخطط‬Objects‫مجمو‬ ‫في‬ ‫بينها‬ ‫فيما‬ ‫تشترك‬ ‫التي‬‫عة‬ ‫الخصائص‬ ‫من‬.  All object-oriented programming languages support the concept of a class. a class provides a template for objects that share common characteristics
  • 26. ‫الكائن‬OBJECT ‫الكائن‬Object‫الـ‬ ‫من‬ ‫نسخة‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫الجافا‬ ‫لغة‬ ‫في‬Class، ‫الـ‬ ‫يتكون‬Object‫الح‬ ‫في‬ ‫والمتمثلة‬ ‫البيانات‬ ‫من‬ ‫مجموعة‬ ‫من‬‫قول‬ ‫الساكنة‬ ‫غير‬non-static fields‫الـ‬ ‫في‬ ‫المعرفة‬Class‫والعمليات‬ ‫عليها‬ ‫المعرفة‬.  A Java object is an instance of a class. Objects are collections of data values, the individual elements of which are described by the non-static field definitions of the class and defined methods.
  • 27. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مبادئ‬ public class Employee private String id public String lastName public String getId() public void setId(String id) …. fields methods id = 211 lastName = Hasan Employee id = 301 lastName = Ibrahim Employee new Employee new Employee
  • 28. ‫فوائد‬‫البرمجة‬‫التوجه‬ ‫كائنية‬ ‫م‬ ‫عدة‬ ‫يوفر‬ ‫البرمجي‬ ‫الكود‬ ‫بناء‬ ‫في‬ ‫الكائن‬ ‫مفهوم‬ ‫استخدام‬‫ايا‬‫ز‬: ‫التجزئة‬Modularity ‫المعلومات‬ ‫إخفاء‬Information-hiding ‫الكود‬ ‫استخدام‬ ‫إعادة‬Code re-use ‫قابل‬‫ي‬‫والتصحيح‬ ‫االستبدال‬ ‫ة‬Pluggability and debugging ease ‫ار‬‫ر‬‫التك‬ ‫من‬ ‫التخلص‬Eliminate Redundant Code
  • 29. ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫مبادئ‬ ‫أساسي‬ ‫مفاهيم‬ ‫عدة‬ ‫على‬ ‫التوجه‬ ‫كائنية‬ ‫البرمجة‬ ‫تعتمد‬‫هي‬ ‫ة‬:- ‫التغليف‬Encapsulation ‫التجريد‬Abstraction ‫اثة‬‫ر‬‫الو‬Inheritance ‫األشكال‬ ‫تعدد‬Polymorphism
  • 30. ‫التغليف‬ENCAPSULATION ‫التغليف‬Encapsulation‫البيانات‬ ‫بإخفاء‬ ‫يعرف‬ ‫قد‬ ‫ما‬ ‫أو‬Data Hiding‫الـ‬ ‫قدرة‬ ‫وهو‬object‫اءات‬‫ر‬‫واإلج‬ ‫الخصائص‬ ‫إخفاء‬ ‫على‬ ‫با‬ ‫مع‬ ‫التعامل‬ ‫اتاحة‬ ‫ثم‬ ‫البرنامج‬ ‫اء‬‫ز‬‫أج‬ ‫باقي‬ ‫عن‬ ‫به‬ ‫الخاصة‬‫اء‬‫ز‬‫أج‬ ‫قي‬ ‫عامة‬ ‫دوال‬ ‫خالل‬ ‫من‬ ‫البرنامج‬public methods‫هذا‬ ‫يوفرها‬ ‫الـ‬object‫معلوما‬ ‫أي‬ ‫معرفة‬ ‫دون‬ ‫خاللها‬ ‫من‬ ‫معه‬ ‫التفاعل‬ ‫يتم‬‫ت‬ ‫الـ‬ ‫لهذا‬ ‫الداخلية‬ ‫الحقول‬ ‫عن‬ ‫أو‬ ‫تنفيذها‬ ‫كيفية‬ ‫عن‬object.
  • 32. ACCESS MODIFIERS ‫لل‬ ‫الوصول‬ ‫إمكانية‬ ‫تحدد‬ ‫مفتاحية‬ ‫كلمات‬ ‫عن‬ ‫عبارة‬ ‫هي‬Classes ‫ال‬ ‫و‬Variables‫ال‬ ‫و‬Methods‫ال‬ ‫من‬ ‫خاص‬ ‫جزء‬ ‫وتعتبر‬Syntax ‫باللغة‬ ‫الخاص‬‫ال‬ ‫مفهوم‬ ‫لتعزيز‬ ‫تستخدم‬ ‫والتي‬encapsulation. ‫ال‬ ‫المثال‬ ‫سبيل‬ ‫على‬C++‫لها‬3‫فلها‬ ‫جافا‬ ‫أما‬ ‫وصول‬ ‫معدالت‬ ‫وصول‬ ‫معدالت‬ ‫أربعة‬!
  • 33. ACCESS MODIFIERS Access Modifier ‫ال‬ ‫داخل‬Class ‫خارج‬‫ال‬Class ‫ال‬ ‫داخل‬Package ‫داخل‬‫ال‬Subclass ‫ال‬ ‫خارج‬Package ‫خارج‬‫ال‬Package Private ‫نعم‬ ‫ال‬ ‫ال‬ ‫ال‬ Default ‫نعم‬ ‫نعم‬ ‫ال‬ ‫ال‬ Protected ‫نعم‬ ‫نعم‬ ‫نعم‬ ‫ال‬ Public ‫نعم‬ ‫نعم‬ ‫نعم‬ ‫نعم‬
  • 34. ‫التجريد‬ABSTRACTION ‫الخاصة‬ ‫والتفاصيل‬ ‫الخصائص‬ ‫حجب‬ ‫عملية‬‫ب‬‫و‬ ‫الكائن‬‫اإلبقاء‬ ‫فقط‬ ‫األساسية‬ ‫والهيكلية‬ ‫العمليات‬ ‫عن‬ ‫واإلفصاح‬. ‫ال‬ ‫يعتبر‬abstraction‫إلى‬ ‫تؤدي‬ ‫التي‬ ‫الهامة‬ ‫المفاهيم‬ ‫من‬ ‫المت‬ ‫ات‬‫ر‬‫التأثي‬ ‫وتقليل‬ ‫البرنامج‬ ‫في‬ ‫التعقيد‬ ‫تقليل‬‫التغيير‬ ‫على‬ ‫رتبة‬ ‫والتعديل‬.
  • 36. ‫التجريد‬ABSTRACTION F() x F() F() F() F() x x x ‫أبسط‬ ‫تعامل‬ ‫واجهة‬ ‫تأث‬ ‫من‬ ‫التقليل‬‫ير‬ ‫والتعد‬ ‫التغيير‬‫يل‬ ‫مثال‬2
  • 37. ‫اثة‬‫ر‬‫الو‬INHERITANCE ‫اثة‬‫ر‬‫الو‬inheritance‫للـ‬ ‫تتيح‬class‫الخصائص‬ ‫تضمين‬‫والسلوك‬‫يات‬ ‫بـ‬ ‫الخاصة‬class‫آخر‬. ‫يسمى‬ ‫الوارث‬ ‫الصنف‬subclass‫منه‬ ‫والموروث‬superclass. ‫في‬‫للـ‬ ‫يمكن‬ ‫الجافا‬class‫له‬ ‫يكون‬ ‫أن‬superclass‫فقط‬ ‫واحد‬! ‫ال‬ ‫من‬ ‫متناهي‬ ‫ال‬ ‫وعدد‬subclasses.
  • 40. ‫الـ‬ABSTRACT CLASS ‫الـ‬Abstract Class‫عن‬ ‫عبارة‬ ‫هو‬ ‫المجرد‬ ‫الصنف‬ ‫أو‬Class‫يمكن‬ ‫ال‬ ‫عمل‬instance‫إنشاء‬ ‫يتم‬ ‫أن‬ ‫يمكن‬ ‫ال‬ ‫أنه‬ ‫أي‬ ‫منه‬object‫من‬ ‫ال‬ ‫هذا‬Class. ‫ال‬ ‫تعريف‬ ‫يتم‬Class‫بأنه‬abstract‫كلمة‬ ‫إضافة‬ ‫خالل‬ ‫من‬ abstract‫تعريفه‬ ‫إلى‬. ‫ال‬ ‫يحتوى‬ ‫قد‬abstract class‫على‬abstract method‫واحدة‬ ‫أي‬ ‫على‬ ‫يحتوى‬ ‫ال‬ ‫قد‬ ‫أو‬ ‫أكثر‬ ‫أو‬abstract method.
  • 42. ‫الـ‬INTERFACE ‫ال‬ ‫أن‬ ‫القوم‬ ‫يمكننا‬ ‫عام‬ ‫بشكل‬interface‫من‬ ‫مجموعة‬ ‫هو‬ ‫ال‬related methods‫أي‬ ‫على‬ ‫تحتوى‬ ‫ال‬implementations ‫الـ‬ ‫أن‬ ‫القول‬ ‫يمكن‬Interface‫يشبه‬‫الـ‬ ‫تركيبته‬ ‫في‬class‫أنه‬ ‫إال‬ ‫يحتوى‬‫ال‬ ‫على‬ ‫فقط‬signature‫بالـ‬ ‫الخاص‬methods‫دون‬ ‫الـ‬implementation‫عمل‬ ‫يتم‬ ‫أن‬ ‫يجب‬ ‫والتي‬implementation ‫ال‬ ‫لهذا‬ ‫اثة‬‫ر‬‫و‬ ‫بعمل‬ ‫سيقوم‬ ‫الذي‬ ‫الكالس‬ ‫في‬ ‫لها‬interface.
  • 43. ‫الـ‬INTERFACE ‫تتم‬‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫عملية‬interface‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫عن‬ ‫مختلف‬ ‫بشكل‬ class‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬ ‫حيث‬implements‫بدال‬‫من‬ ‫المفتاحية‬ ‫الكلمة‬extends. ‫قيام‬ ‫عند‬ ‫اثة‬‫ر‬‫الو‬ ‫تعدد‬ ‫من‬ ‫نوع‬ ‫يحدث‬class‫بعمل‬ implements‫من‬ ‫ألكثر‬interface.
  • 44. ‫الـ‬INTERFACE ‫عمل‬implement‫ل‬interface‫لل‬ ‫يسمح‬class‫أكثر‬ ‫يكون‬ ‫أن‬ ‫به‬ ‫الخاص‬ ‫السلوك‬ ‫حيث‬ ‫من‬ ‫نظامية‬. ‫ال‬ ‫يشكل‬Interface‫ال‬ ‫بين‬ ‫ما‬ ‫عقد‬class‫ويتم‬ ‫البرنامج‬ ‫وباقي‬ ‫ال‬ ‫مرحلة‬ ‫في‬ ‫العقد‬ ‫هذا‬ ‫تنفيذ‬complication‫اجبار‬ ‫يتم‬ ‫بحيث‬ ‫بعمل‬ ‫يقوم‬ ‫الذي‬ ‫الكالس‬implement‫ل‬interface‫تعريف‬ ‫على‬ ‫ال‬ ‫جميع‬methods‫ال‬ ‫يحتويها‬ ‫التي‬interface. ‫مثال‬4
  • 45. ‫األوجه‬ ‫تعدد‬POLYMORPHISM ‫األوجه‬ ‫تعدد‬Polymorphism‫على‬ ‫المختلفة‬ ‫الكائنات‬ ‫قدرة‬ ‫هو‬ ‫األسلوب‬ ‫أو‬ ‫الرسالة‬ ‫لنفس‬ ‫مختلف‬ ‫بشكل‬ ‫االستجابة‬. ‫تعريف‬ ‫يمكنك‬ ‫الشيئية‬ ‫البرمجة‬ ‫في‬method‫االسم‬ ‫بنفس‬ ‫أكثر‬ ‫أو‬ ‫التنفيذ‬ ‫اختالف‬ ‫مع‬implementation.
  • 46. ‫األوجه‬ ‫تعدد‬POLYMORPHISM ‫خالل‬ ‫من‬ ‫األمر‬ ‫هذا‬ ‫يتم‬ ‫كان‬ ‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬ ‫لغات‬ ‫في‬if .. else ‫أو‬switch .. case‫وبن‬ ‫البيانات‬ ‫هيكل‬ ‫نوع‬ ‫فحص‬ ‫يتم‬ ‫بحيث‬‫عليه‬ ‫اء‬ ‫ال‬ ‫تحديد‬action‫أن‬ ‫يكفي‬ ‫الشيئية‬ ‫البرمجة‬ ‫لغات‬ ‫في‬ ‫ولكن‬‫تقوم‬ ‫ال‬ ‫باستدعاء‬method‫المطلوب‬‫ة‬‫تنفي‬ ‫لها‬ ‫سيكون‬ ‫بدورها‬ ‫والتي‬‫ذ‬ ‫ال‬ ‫صنف‬ ‫أو‬ ‫نوع‬ ‫حسب‬ ‫مختلف‬objects.
  • 47. ‫األوجه‬ ‫تعدد‬POLYMORPHISM int x Int y Shape radius Circle width height Rectangle side_length Square
  • 50. ‫الحزمة‬PACKAGE ‫الحزمة‬package‫عن‬ ‫عبارة‬ ‫هي‬namespace‫باحتواء‬ ‫تقوم‬ ‫ال‬classes‫وال‬interfaces‫ببعضها‬ ‫المتعلقة‬. ‫ال‬ ‫اعتبار‬ ‫يمكنك‬package‫الخاص‬ ‫التخزين‬ ‫وحدة‬ ‫في‬ ‫مجلد‬ ‫بمثابة‬ ‫بصفحات‬ ‫االحتفاظ‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ‫يمكنك‬ ‫حيث‬ ،‫بك‬HTML‫في‬ ‫وال‬ ‫آخر‬ ‫مجلد‬ ‫في‬ ‫والصور‬ ‫مجلد‬scripts‫وهكذا‬ ‫آخر‬ ‫مجلد‬ ‫في‬.
  • 52. ‫تعليم‬ ‫رحلة‬ ‫لكم‬ ‫أتمنى‬‫ية‬ ‫ممتعة‬ 