SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
‫التوجه‬ ‫كائنية‬ ‫البرمجة‬
‫أ‬.‫البلبيسي‬ ‫عمر‬
‫مقدمة‬
‫هي‬ ‫البرمجة‬‫ال‬ ‫لحل‬ ‫الرياضية‬ ‫والوسائل‬ ‫الطرق‬ ‫استخدام‬‫مشكالت‬
‫وسيط‬ ‫باستخدام‬(‫هو‬‫الحاسوب‬)‫المعا‬ ‫تلك‬ ‫ترجمة‬ ‫يمكنه‬‫دالت‬
‫بمخرجات‬ ‫والخروج‬ ‫معينة‬ ‫بمهام‬ ‫للقيام‬.
‫يت‬ ‫التي‬ ‫البرمجية‬ ‫التعليمات‬ ‫من‬ ‫مجموعة‬ ‫هو‬ ‫البرنامج‬‫تحليلها‬ ‫م‬
‫معينة‬ ‫مهام‬ ‫أو‬ ‫مهمة‬ ‫ألداء‬ ‫الحاسوب‬ ‫بواسطة‬ ‫وتنفيذها‬.
‫للبرنامج‬ ‫األساسية‬ ‫المهام‬
‫هي‬ ‫البرمجة‬ ‫لغات‬ ‫توفرها‬ ‫التي‬ ‫األساسية‬ ‫المهام‬:
‫قبول‬‫المدخالت‬
‫تخزين‬‫البيانات‬
‫معالجة‬‫البيانات‬
‫إنتاج‬‫المخرجات‬
‫البرمجة‬ ‫وأنماط‬ ‫طرق‬
‫ائية‬‫ر‬‫اإلج‬ ‫البرمجة‬
 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
‫تعليم‬ ‫رحلة‬ ‫لكم‬ ‫أتمنى‬‫ية‬
‫ممتعة‬


Contenu connexe

Tendances

Java: The Complete Reference, Eleventh Edition
Java: The Complete Reference, Eleventh EditionJava: The Complete Reference, Eleventh Edition
Java: The Complete Reference, Eleventh Edition
moxuji
 

Tendances (20)

Data types in java
Data types in javaData types in java
Data types in java
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
 
object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming ppt
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات
 
OOP Basics
OOP BasicsOOP Basics
OOP Basics
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Object oriented programming in python
Object oriented programming in pythonObject oriented programming in python
Object oriented programming in python
 
Java: The Complete Reference, Eleventh Edition
Java: The Complete Reference, Eleventh EditionJava: The Complete Reference, Eleventh Edition
Java: The Complete Reference, Eleventh Edition
 
قواعد البيانات.ppt
قواعد البيانات.pptقواعد البيانات.ppt
قواعد البيانات.ppt
 
Object Oriented Programming Languages
Object Oriented Programming LanguagesObject Oriented Programming Languages
Object Oriented Programming Languages
 
Introduction to class in java
Introduction to class in javaIntroduction to class in java
Introduction to class in java
 
Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methods
 
OOP Introduction with java programming language
OOP Introduction with java programming languageOOP Introduction with java programming language
OOP Introduction with java programming language
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
CLASS & OBJECT IN JAVA
CLASS & OBJECT  IN JAVACLASS & OBJECT  IN JAVA
CLASS & OBJECT IN JAVA
 
Er model ppt
Er model pptEr model ppt
Er model ppt
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
 
Object Oriented Design Concept
Object Oriented Design ConceptObject Oriented Design Concept
Object Oriented Design Concept
 

Similaire à Object Oriented Programming

البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
SultanAlAnazi42
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
Prmigo
 
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجيمقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
مقدمة في بناء الأنطولوجيا باستخدام برنامج البورتجي
Hend Al-Khalifa
 

Similaire à Object Oriented Programming (20)

Eight part sameera um11 12-2012
Eight part sameera um11 12-2012Eight part sameera um11 12-2012
Eight part sameera um11 12-2012
 
البرمجة بلغة سي ++ المحاضرة الأولى (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
 

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. ‫تعليم‬ ‫رحلة‬ ‫لكم‬ ‫أتمنى‬‫ية‬ ‫ممتعة‬ 