SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Java
Programming Language
( Console Application)
‫احملاضر‬:‫الدروقي‬ ‫مسعود‬ ‫سامل‬
‫جامعة‬‫المرقب‬-‫كلية‬‫التربية‬-‫الخمس‬
2016
Java OOP
Java
‫الربجمة‬ ‫اساسيات‬‫باهلدف‬ ‫املوجهة‬‫اجلافا‬ ‫لغة‬ ‫باستخدام‬
OOP Fundamental Using Java
By: Salem.M.Adrugi
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
1
‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬Object Oriented Programming:
( ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬Object Oriented Programming)( ‫وتختصر‬OOP‫ة‬‫ر‬‫عبا‬ ‫هي‬ )
‫اساسا‬ ‫يعتمد‬ ‫برمجة‬ ‫اسلوب‬( ‫الحقيقة‬ ‫الحياة‬ ‫نمط‬ ‫محاكاة‬ ‫على‬Real Live‫التركيز‬ ‫خالل‬ ‫من‬ )
‫بدل‬ ‫البيانات‬‫و‬ ‫الكائنات‬ ‫فئات‬ ‫مفهوم‬ ‫على‬‫البرمجة‬ ‫اسلوب‬ ‫يعتمد‬ ‫حيث‬ ،‫المنطق‬‫و‬ ‫الحداث‬ ‫من‬
‫فئات‬ ‫إلى‬ ‫نامج‬‫ر‬‫الب‬ ‫تقسيم‬ ‫على‬ ‫بالهدف‬ ‫الموجهة‬(Classes)‫مج‬ ‫فئة‬ ‫كل‬ ‫تضم‬‫الكائنات‬ ‫من‬ ‫موعة‬
(Objects)‫كل‬ ‫أن‬ ‫نجد‬ ‫الحقيقية‬ ‫الحياة‬ ‫اقع‬‫و‬ ‫إلى‬ ‫النظر‬ ‫وعند‬ ،‫الفعال‬‫و‬ ‫الخصاص‬ ‫في‬ ‫المتشابهة‬
‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫له‬ ‫كائن‬ ‫إل‬ ‫هو‬ ‫ما‬ ‫وجماد‬ ‫حية‬ ‫كائنات‬ ‫من‬ ‫الحياة‬ ‫هذه‬ ‫في‬ ‫موجود‬ ‫هو‬ ‫ما‬
‫المت‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫تضم‬ ‫فصيلة‬ ‫او‬ ‫فئة‬ ‫تحت‬ ‫الكائن‬ ‫هذا‬ ‫ج‬‫ويندر‬ ‫الفعال‬‫و‬‫في‬ ‫معه‬ ‫شابه‬
.‫الفعال‬‫و‬ ‫الصفات‬ ‫من‬ ‫العديد‬
‫مثال‬1::‫مركبة‬ ‫الفئة‬‫منها‬ ‫نشتق‬ ‫أن‬ ‫يمكن‬،‫ة‬‫ر‬‫(سيا‬ ‫الكائنات‬،‫اجة‬‫ر‬‫د‬،‫ة‬‫ر‬‫طائ‬‫شاحنة‬.)
( ‫مثل‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫منها‬ ‫كل‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫التي‬‫و‬،‫ع‬‫النو‬،‫اللون‬،‫المحرك‬ ‫قوة‬
.)‫الصنع‬ ‫يخ‬‫ر‬‫تا‬ ،‫الركاب‬ ‫عدد‬
‫بب‬ ‫القيام‬ ‫الكائنات‬ ‫هذه‬ ‫تستطيع‬ ‫كما‬‫تشغيل‬ ، ‫التوقف‬ ، ‫النطالق‬ ( ‫مثل‬ ‫المشتركة‬ ‫الفعال‬ ‫عض‬
) ‫المحرك‬ ‫تشغيل‬ ‫ايقاف‬ ، ‫المحرك‬
‫مثال‬2:
:‫طالب‬ ‫الفئة‬( ‫الكائنات‬ ‫منها‬ ‫نشتق‬ ‫أن‬ ‫يمكن‬Ahmed,Salem,Mhamed)
‫السنة‬ ، ‫القيد‬ ‫قم‬‫ر‬ ، ‫(السم‬ ‫مثال‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫منها‬ ‫كل‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫التي‬‫و‬
‫الفصلي‬ ‫المعدل‬ ، ‫اسية‬‫ر‬‫الد‬.)
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
2
‫،حضور‬ ‫الورق‬ ‫على‬ ‫الكتابة‬ ( ‫مثل‬ ‫المشتركة‬ ‫الفعال‬ ‫ببعض‬ ‫القيام‬ ‫الكائنات‬ ‫هذه‬ ‫تستطيع‬ ‫كما‬
.) ‫المتحان‬ ‫دخول‬ ، ‫ة‬‫ر‬‫للمحاض‬ ‫الستماع‬ ، ‫ة‬‫ر‬‫محاض‬
.‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫اساليب‬ ‫عليها‬ ‫تعتمد‬ ‫التي‬ ‫ئيسة‬‫ر‬‫ال‬ ‫المفاهيم‬ ‫اهم‬ ‫نقدم‬ ‫يلي‬ ‫وفيما‬
‫الكائنات‬ ‫و‬ ‫الفئات‬& ObjectsClasses:
( ‫الفئة‬Class):‫معين‬ ‫ع‬‫لنو‬ ‫شامل‬ ‫تمثيل‬ ‫هي‬‫مجموعة‬ ‫اشتقاق‬ ‫خالله‬ ‫من‬ ‫نستطيع‬ ‫األشياء‬ ‫من‬
‫خالله‬ ‫من‬ ‫نستطيع‬ ‫عام‬ ‫قالب‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫الفئة‬ ‫أن‬ ‫بمعني‬ ‫الخصائص‬ ‫من‬ ‫العديد‬ ‫في‬ ‫تتشابه‬ ‫كائنات‬
:‫التالي‬ ‫بالشكل‬ ‫الفئة‬ ‫تمثيل‬ ‫ويمكن‬ ‫الكائنات‬ ‫اشتقاق‬
Class_Name
Class_Properties
Class_Methods
:‫مثال‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
3
( ‫الكائن‬Object:)‫ح‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهو‬‫منها‬ ‫المشتق‬ ‫الفئة‬ ‫حالت‬ ‫من‬ ‫الة‬‫في‬ ‫تتشابه‬ ‫و‬ ‫الكائن‬ ‫هذا‬
‫اسم‬ ‫كائن‬ ‫لكل‬ ‫يكون‬ ‫بحيث‬ ‫الفئة‬ ‫نفس‬ ‫من‬ ‫المشتقة‬ ‫الكائنات‬ ‫من‬ ‫العديد‬ ‫مع‬ ‫الخصائص‬ ‫بعض‬
‫المش‬ ‫الكائنات‬ ‫بقية‬ ‫مع‬ ‫تتشابه‬ ‫أن‬ ‫يمكن‬ ‫به‬ ‫خاصة‬ ‫وخصائص‬ ‫الكائنات‬ ‫بقية‬ ‫عن‬ ‫له‬ ‫مميز‬‫من‬ ‫تقة‬
‫الكائن‬ ‫سلوك‬ ‫تمثل‬ ‫افعال‬‫و‬ ‫الفئة‬ ‫نفس‬" ‫الفئة‬ ‫من‬ ‫مشتق‬ ‫كائن‬ ‫يمثل‬ ‫التالي‬ ‫الشكل‬‫و‬Circle:"
‫الخصائص‬Properties:‫من‬ ‫غم‬‫وبالر‬ ‫الكائنات‬ ‫مظهر‬ ‫من‬ ‫تغير‬ ‫التي‬ ‫الصفات‬ ‫من‬ ‫مجموعة‬ ‫هي‬
‫الكائنات‬ ‫من‬ ‫كائن‬ ‫لكل‬ ‫أنه‬ ‫إل‬ ‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫المشتركة‬ ‫الخصائص‬ ‫من‬ ‫العديد‬ ‫هنالك‬ ‫أن‬
( ‫الخصائص‬ ‫امثلة‬ ‫ومن‬ ‫ى‬‫الخر‬ ‫الكائنات‬ ‫عن‬ ‫له‬ ‫ة‬‫ز‬‫الممي‬ )‫الخصائص(الصفات‬ ‫من‬ ‫مجموعة‬‫ا‬،‫للون‬
،‫ان‬‫و‬‫العن‬،‫المكان‬،‫تفاع‬‫ر‬‫ال‬‫باستخدام‬ ‫الخصائص‬ ‫تمثيل‬ ‫يتم‬ ‫البرمجة‬ ‫عالم‬ ‫وفي‬ ،)‫..الخ‬ ‫العرض‬
.‫الخاصية‬ ‫يمثل‬ ‫الذي‬ ‫المتغير‬ ‫كائن‬ ‫أي‬ ‫خصائص‬ ‫وتغير‬ ‫ضبط‬ ‫ويمكن‬ ،‫ات‬‫ر‬‫متغي‬
( ‫ال‬‫و‬‫الد‬‫الطرق‬)Methods:‫ة‬‫ر‬‫عبا‬ ‫وهي‬ ‫الكائنات‬ ‫بها‬ ‫تقوم‬ ‫أن‬ ‫يمكن‬ ‫التي‬ ‫الفعال‬ ‫مجموعة‬ ‫وهي‬
‫معينة‬ ‫وظيفة‬ ‫ألداء‬ ‫الكائن‬ ‫منها‬ ‫المشتق‬ ‫الفئة‬ ‫داخل‬ ‫مبنية‬ ‫محددة‬ ‫بوظائف‬ ‫تقوم‬ ‫ة‬‫ز‬‫جاه‬ ‫ال‬‫و‬‫د‬ ‫عن‬
‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫كتابة‬ ‫خالل‬ ‫من‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫باستدعائها‬ ‫ال‬‫و‬‫الد‬ ‫هذه‬ ‫تنفيذ‬ ‫ويتم‬ ‫الكائن‬ ‫بسلوك‬ ‫تتعلق‬
‫كتابة‬ ‫ثم‬ ‫نقطة‬( ‫الدالة‬ ‫اسم‬Method‫أثناء‬ ‫قيما‬ ‫تأخذ‬ ‫ل‬ ‫كونها‬ ‫في‬ ‫الخصائص‬ ‫عن‬ ‫وتختلف‬ )
.‫ال‬‫و‬‫الد‬ ‫ع‬‫موضو‬ ‫في‬ ‫حها‬‫شر‬ ‫تم‬ ‫أن‬‫و‬ ‫سبق‬ ‫وقد‬ ‫كتابها‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
4
)‫(الفئة‬ ‫الفصيلة‬ ‫عن‬ ‫اإلعالن‬Class Declaration:
‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫استخدام‬ ‫خالل‬ ‫من‬ ‫الفصيلة‬ ‫عن‬ ‫اإلعالن‬ ‫يتم‬class‫ثم‬ ‫الفصيلة‬ ‫اسم‬ ‫يتبعها‬ ‫ثم‬
‫الفئة‬ ‫قوسي‬‫الفصيلة‬ ‫اسم‬ ‫يبدأ‬ ‫أن‬ ‫يجب‬ ‫أنه‬ ‫مالحظة‬ ‫مع‬ ‫بداخلها‬ ‫الطرق‬‫و‬ ‫الخصائص‬ ‫كتابة‬ ‫ليتم‬
.‫كبير‬ ‫بحرف‬
class Class_name {
‫والدوال‬ ‫الخصائص‬ ‫كتابة‬ ‫يتم‬ ‫هنا‬
}
‫اإل‬ :‫مثال‬‫اسم‬ ‫تحت‬ ‫فصيلة‬ ‫عن‬ ‫عالن‬"Student"‫ت‬‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫حتوي‬:
class Student{
String name;
int ID;
String Dep;
int age;
String address;
double avg;
char group;
}
:‫الفئة‬ ‫من‬ ‫كائنات‬ ‫اشتقاق‬
" ‫الفئة‬ ‫في‬ ‫فة‬‫ر‬‫المع‬ )‫(الخصائص‬ ‫ات‬‫ر‬‫المتغي‬ ‫كافة‬ ‫أن‬ ‫نالحظ‬Student‫قيما‬ ‫إعطائها‬ ‫يمكن‬ ‫ل‬ "
‫ت‬ ‫انما‬‫و‬ ‫ذاته‬ ‫بحد‬ ‫طالب‬ ‫تمثل‬ ‫ل‬ ‫ات‬‫ر‬‫المتغي‬ ‫هذه‬ ‫ألن‬ ‫نفسها‬ ‫الفئة‬ ‫داخل‬‫الطالب‬ ‫لكافة‬ ‫عاما‬ ‫قالبا‬ ‫مثل‬
‫ولكي‬ ‫الطالب‬ ‫كافة‬ ‫في‬ ‫الخصائص‬ ‫هذه‬ ‫قيم‬ ‫تتساوى‬ ‫إن‬ ‫يمكن‬ ‫ل‬ ‫فإنه‬ ‫الطبيعي‬ ‫ومن‬ ‫النظام‬ ‫في‬
‫كائن‬ ‫نشتق‬ ‫أن‬ ‫ل‬‫او‬ ‫يجب‬ ‫معين‬ ‫بطالب‬ ‫خاصة‬ ‫قيما‬ ‫الخصائص‬ ‫هذه‬ ‫نعطي‬ ‫أن‬ ‫نستطيع‬
(Object‫الخصائ‬ ‫نفس‬ ‫يحمل‬ ‫كائن‬ ‫منها‬ ‫كل‬ ‫يمثل‬ ‫الفئة‬ ‫هذه‬ ‫من‬ ‫كائنات‬ ‫مجموعة‬ ‫أو‬ )‫(بقيم‬ ‫ص‬
‫نشتق‬ ‫أن‬ ‫برمجيا‬ ‫ويمكننا‬ ‫الكائن‬ ‫اسم‬ ‫حسب‬ ‫كل‬ ‫قيما‬ ‫الخصائص‬ ‫هذه‬ ‫بإعطاء‬ ‫نقوم‬ ‫ثم‬ )‫مختلفة‬
" ‫الفئة‬ ‫من‬ ‫كائن‬Student:‫التالي‬ ‫السطر‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ "
Class_name object_name = new class_name();
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
5
‫القيم‬ ‫إعطاء‬ ‫يتم‬ ‫ثم‬ ‫نامج‬‫ر‬‫للب‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫في‬ ‫السطر‬ ‫هذا‬ ‫يكتب‬ ‫حيث‬‫من‬ ‫الخصائص‬ ‫لكافة‬
‫على‬ ‫الخاصية‬ ‫قيمة‬ ‫ثم‬ "=" ‫التخصيص‬ ‫عالمة‬ ‫ثم‬ ‫الخاصية‬ ‫ثم‬ ‫النقطة‬ ‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫كتابة‬ ‫خالل‬
:‫التالي‬ ‫النحو‬
Object_name.field_name = value;
‫مثال‬:" ‫الطالب‬ ‫فئة‬ ‫من‬ ‫كائن‬ ‫إنشاء‬Student‫في‬ ‫مسبقا‬ ‫فة‬‫ر‬‫المع‬ "‫لفئة‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬‫ى‬‫أخر‬
" ‫تسمى‬Test"
class Student{
String name;
int ID;
String Dep;
double avg;
char group;
}
public class Test{
public static void main(String args[]){
Student st1 = new Student();
st1.name="‫الدروقي‬ ‫;"سالم‬
st1.ID=52362;
st1.Dep="‫;"الحاسوب‬
st1.avg=80;
st1.group='c';
}}
" ‫اسم‬ ‫تحت‬ ‫األولي‬ ‫فئتين‬ ‫من‬ ‫السابقة‬ ‫نامج‬‫ر‬‫الب‬ ‫يتكون‬Student" ‫اسم‬ ‫تحت‬ ‫الثانية‬‫و‬ "Test‫وهي‬ "
.‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الفئة‬
‫مالحظة‬.‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الفئة‬ ‫هي‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الفئة‬ :
‫جم‬ ‫على‬ ‫ائه‬‫و‬‫احت‬ ‫لعدم‬ ‫ا‬‫ر‬‫نظ‬ ‫للمستخدم‬ ‫نتائج‬ ‫أية‬ ‫يعطي‬ ‫لن‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬‫ولكي‬ ‫الطباعة‬ ‫لة‬
" ‫اسم‬ ‫تحت‬ ‫دالة‬ ‫يف‬‫ر‬‫بتع‬ ‫سنقوم‬ ‫فإننا‬ ‫السابقة‬ ‫البيانات‬ ‫طباعة‬ ‫نستطيع‬print‫كافة‬ ‫بإرسال‬ ‫وسنقوم‬ "
‫البيانات‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
6
‫بداخلها‬ ‫كتابتها‬ ‫سيتم‬ ‫التي‬ ‫الطباعة‬ ‫جمل‬ ‫إلى‬ ‫وتحويلها‬ ‫باستقبالها‬ ‫لتقوم‬ ‫ات‬‫ر‬‫امت‬‫ر‬‫كبا‬ ‫لها‬ ‫السابقة‬
‫يلي‬ ‫كما‬ ‫كامال‬ ‫نامج‬‫ر‬‫الب‬ ‫ليصبح‬:
1. public class Test
2. {
3. public static void main(String args[])
4. {
5. Student st1 = new Student(); //Student ‫الفئة‬ ‫من‬ ‫كان‬ ‫اشتقاق‬
6. st1.name="‫الدروقي‬ ‫;"سالم‬
7. st1.ID=52362;
8. st1.Dep=" ‫الحاسو‬‫ب‬ ";
9. st1.avg=80;
10. st1.group='c';
11. st1.print(st1.name,st1.ID,st1.Dep,st1.avg,st1.group);// ‫الطباعة‬ ‫دالة‬ ‫استدعاء‬
12. }
13. }
14. class Student //Student ‫الفئة‬ ‫انشاء‬
15. {
16. String name;
17. int ID;
18. String Dep;
19. double avg;
20. char group;
21. void print(String p1,int p2,String p3,double p4,char p5)
22. {
23. System.out.println("Student name is :" + p1 );
24. System.out.println("Student id is :" + p2 );
25. System.out.println("Student department is :" + p3 );
26. System.out.println("Student average is :" + p4 );
27. System.out.println("Student group is :" + p5 );
28. }
29. }
‫للخصائص‬ ‫قيم‬ ‫تخصيص‬
‫الطباعة‬ ‫دالة‬
‫الفئة‬ ‫في‬Student
‫الفئة‬ ‫خصائص‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
7
‫ش‬:‫السابق‬ ‫البرنامج‬ ‫رح‬
‫السطر‬ ‫في‬11" ‫اسم‬ ‫تحت‬ ‫فئة‬ ‫إنشاء‬ ‫تم‬Student‫التي‬‫و‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫تحتوي‬ "
‫السطر‬ ‫من‬ ‫تبدأ‬11‫إلى‬22" ‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫ودالة‬print‫السطر‬ ‫من‬ ‫تبدأ‬ "21‫إلى‬22.
‫قم‬‫ر‬ ‫السطر‬ ‫في‬5‫اسم‬ ‫تحت‬ ‫كائن‬ ‫اشتقاق‬ ‫تم‬st1‫الفئة‬ ‫من‬Student.
‫من‬ ‫السطر‬1‫إلى‬12.‫الكائن‬ ‫خصائص‬ ‫لكافة‬ ‫قيم‬ ‫تخصيص‬ ‫فيها‬ ‫تم‬
‫قم‬‫ر‬ ‫السطر‬ ‫في‬11‫طباعة‬ ‫المطلوب‬ ‫المعامالت‬ ‫كافة‬ ‫رسال‬‫ا‬‫و‬ ‫بالطباعة‬ ‫الخاصة‬ ‫الدالة‬ ‫استدعاء‬ ‫تم‬
.‫قيمها‬
: ‫البرنامج‬ ‫تنفيذ‬ ‫ناتج‬
Student name is :‫الدروقي‬ ‫سالم‬
Student id is :52362
Student department is :‫الحاسوب‬
Student average is :80.0
Student group is :c
‫إ‬:‫المستخدم‬ ‫قبل‬ ‫من‬ ‫الخصائص‬ ‫قيم‬ ‫دخال‬
‫سابقا‬ ‫عرضت‬ ‫التي‬ ‫النتائج‬ ‫غير‬ ‫ى‬‫اخر‬ ‫نتائج‬ ‫يعطي‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫أنه‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫نالحظ‬
‫إدخال‬ ‫امكانية‬ ‫المستخدم‬ ‫إلعطاء‬‫و‬ ‫نفسه‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫الخصائص‬ ‫قيم‬ ‫تخصيص‬ ‫تم‬ ‫قد‬ ‫ألنه‬ ‫وذلك‬
‫اإل‬ ‫جملة‬ ‫استخدام‬ ‫يجب‬ ‫القيم‬‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ة‬‫ر‬‫مباش‬ ‫القيم‬ ‫كتابة‬ ‫من‬ ‫بدل‬ ‫دخال‬(‫في‬ ‫الدخال‬ ‫جمل‬ ‫اجع‬‫ر‬
‫الجافا‬ ‫لغة‬).
:‫التالي‬ ‫النحو‬ ‫على‬ ‫القيم‬ ‫ين‬‫ز‬‫وتخ‬ ‫إلدخال‬ ‫المخصص‬ ‫نامج‬‫ر‬‫الب‬ ‫ء‬‫جز‬ ‫ليصبح‬
st1.name=input.next();
st1.ID=input.nextInt();
st1.Dep=input.next();
st1.avg=input.nextDouble();
st1.group=input.next().charAt(0);
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
8
)‫(المشيد‬ ‫البناء‬ ‫دلة‬Constructor:
‫بقية‬ ‫عن‬ ‫ها‬‫تميز‬ ‫يتم‬ ‫و‬ ‫الدالة‬ ‫مع‬ ‫تركيبها‬ ‫في‬ ‫تتشابه‬ ‫نهاية‬ ‫ولها‬ ‫بداية‬ ‫لها‬ ‫برمجية‬ ‫ة‬‫ر‬‫شف‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫هو‬
‫عن‬ ‫البناء‬ ‫دالة‬ ‫تختلف‬ ‫كما‬ ،‫فيها‬ ‫الموجودة‬ ‫الفئة‬ ‫لسم‬ ‫مطابقا‬ ‫يكون‬ ‫الذي‬ ‫اسمها‬ ‫خالل‬ ‫من‬ ‫ال‬‫و‬‫الد‬
‫يق‬‫ر‬‫ط‬ ‫في‬ ‫ال‬‫و‬‫الد‬ ‫بقية‬‫فيها‬ ‫يتم‬ ‫ة‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫داخلها‬ ‫الموجودة‬ ‫البرمجية‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيد‬ ‫يتم‬ ‫حيث‬ ‫تنفيذها‬ ‫ة‬
‫المفتاحية‬ ‫الكلمة‬ ‫باستخدام‬ ‫يتم‬ ‫الذي‬‫و‬ ،‫البناء‬ ‫دالة‬ ‫فيها‬ ‫الموجودة‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬"new"
‫هو‬ ‫كما‬ ‫قيمة‬ ‫جع‬‫تر‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫البناء‬ ‫دالة‬ ‫أن‬ ‫كما‬ ،‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬ ‫عند‬ ‫المستخدمة‬‫و‬
‫قيمتها‬ ‫إعادة‬ ‫المطلوب‬ ‫ات‬‫ر‬‫المتغي‬ ‫تهيئة‬ ‫في‬ ‫البناء‬ ‫ال‬‫و‬‫د‬ ‫تستخدم‬ ‫و‬ ،‫ى‬‫الخر‬ ‫ال‬‫و‬‫الد‬ ‫بعض‬ ‫في‬ ‫متوفر‬
‫من‬ ‫نوعان‬ ‫هنالك‬ ‫ويوجد‬ ،‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬ ‫فيها‬ ‫يتم‬ ‫ه‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫ابتدائية‬ ‫قيما‬ ‫إعطائها‬ ‫او‬
:‫البناء‬ ‫ال‬‫و‬‫د‬
‫ات‬‫ر‬‫امت‬‫ر‬‫با‬ ‫على‬ ‫تحتوي‬ ‫ال‬ ‫بناء‬ ‫ال‬‫و‬‫د‬Non Parameterized Constructor:
‫او‬ ‫قيم‬ ‫إرسال‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬ ‫فإنها‬ ‫وبالتالي‬ ‫معامالت‬ ‫على‬ ‫تحتوي‬ ‫ل‬ ‫بناء‬ ‫ال‬‫و‬‫د‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهي‬
‫دالة‬ ‫او‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫وتسمى‬ ‫فئة‬ ‫كل‬ ‫في‬ ‫فقط‬ ‫احدة‬‫و‬ ‫دالة‬ ‫منها‬ ‫ويوجد‬ ‫تنفيذها‬ ‫عند‬ ‫ات‬‫ر‬‫متغي‬
( ‫اضية‬‫ر‬‫الفت‬ ‫البناء‬Default Constructor.)
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
9
:‫مثال‬
public class Main_Class // ‫الرئيسية‬ ‫الفئة‬
{
public static void main(String[] args)// ‫البرنامج‬ ‫في‬ ‫الرئيسة‬ ‫الدالة‬
{
Student Std= new Student(); // Student ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬
Std.print(); // ‫الطباعة‬ ‫دالة‬ ‫استدعاء‬
}
}
class Student // ‫الفئة‬
{
public String name="Ahmed"; //name ‫المتغير‬ ‫تعريف‬
public Student()
{
name="Salem"; //name ‫تهيئة‬‫المتغير‬
}
public void print()// ‫الطباعة‬ ‫دالة‬
{
System.out.println("welcome Mr "+name);
}
}
‫إنشاء‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬‫المسماة‬‫و‬ ‫ئيسة‬‫ر‬‫ال‬ ‫الفئة‬ ‫هي‬ ‫األولى‬ ‫فئتين‬ ‫عدد‬ ‫على‬ ‫يحتوي‬ ‫ع‬‫مشرو‬
(Main_class" ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الفئة‬ ‫وهي‬ )main‫الفئة‬ ‫هي‬ ‫الثانية‬‫و‬ "
"Student( ‫فية‬‫ر‬‫ح‬ ‫سلسلة‬ ‫ع‬‫نو‬ ‫من‬ ‫متغير‬ ‫يف‬‫ر‬‫لتع‬ ‫جملة‬ ‫على‬ ‫وتحتوي‬ "String‫اسم‬ ‫تحت‬ )
"name" ‫ابتدائية‬ ‫قيمة‬ ‫عطائة‬‫ا‬‫و‬ "Ahmed‫كما‬ "‫تح‬( ‫البناء‬ ‫دالة‬ ‫على‬ ‫الفئة‬ ‫هذه‬ ‫توي‬Student)
"‫المتغير‬ ‫تهيئة‬ ‫فيها‬ ‫تم‬ ‫التي‬‫و‬name" ‫قيمة‬ ‫عطائه‬‫ا‬‫و‬ "Salem‫الفئة‬ ‫فإن‬ ‫ذلك‬ ‫إلى‬ ‫باإلضافة‬ "
"Student‫تحتوي‬ "‫دالة‬ ‫على‬‫الطباعة‬(Print)‫المتغير‬ ‫قيمة‬ ‫لطباعة‬(name).
‫الفئة‬Student
‫البناء‬ ‫دالة‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
11
‫البر‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫في‬ ‫ة‬‫ر‬‫مباش‬ ‫يبدأ‬ ‫المترجم‬ ‫فإن‬ ‫نامج‬‫ر‬‫الب‬ ‫تنفيذ‬ ‫عند‬‫الدالة‬ ‫داخل‬ ‫الموجودة‬ ‫مجية‬
‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ ‫يتم‬ ‫بحيث‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسية‬‫ر‬‫ال‬Student‫اسم‬ ‫تحت‬"Std"‫في‬ ‫يتم‬ ‫كما‬
" ‫المشيد‬ ‫استدعاء‬ ‫السطر‬ ‫نفس‬Student" ‫المفتاحية‬ ‫الكلمة‬ ‫وجود‬ ‫خالل‬ ‫من‬ "new‫نفس‬ ‫في‬ "
‫الدالة‬ ‫استدعاء‬ ‫بعدها‬ ‫يتم‬ ‫ثم‬ ‫السطر‬Print‫الفئة‬ ‫في‬ ‫الموجودة‬Student‫الكائن‬ ‫خالل‬ ‫من‬"Std"
(‫التالية‬ ‫الجملة‬ ‫طباعة‬ ‫عنها‬ ‫ينتج‬ ‫التي‬ ‫و‬ ‫بداخلها‬ ‫الموجودة‬ ‫البرمجية‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫ليتم‬welcome
Mr Salem.‫الطباعة‬ ‫شاشة‬ ‫على‬ )
‫من‬ ‫غم‬‫وبالر‬ ‫أنه‬ ‫حيث‬ ،‫المشيد‬ ‫عمل‬ ‫ة‬‫ر‬‫فك‬ ‫نالحظ‬ ‫أن‬ ‫نستطيع‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬ ‫تنفيذ‬ ‫ناتج‬ ‫خالل‬ ‫من‬
‫المتغير‬ ‫قيمة‬ ‫أن‬name" ‫هي‬Ahmed‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫تم‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ ‫عند‬ ‫أنه‬ ‫إل‬ "
" ‫المسمى‬ ‫المشيد‬ ‫بداخل‬ ‫الموجودة‬ ‫البرمجية‬Student‫المتغير‬ ‫قيمة‬ ‫بتغيير‬ ‫قامت‬ ‫التي‬‫و‬ "name
‫من‬Ahmed‫إلى‬Salem.
‫ات‬‫ر‬‫بارمت‬ ‫على‬ ‫تحتوي‬ ‫بناء‬ ‫ال‬‫و‬‫د‬Parameterized Constructor:
‫معامال‬ ‫على‬ ‫تحتوي‬ ‫بناء‬ ‫ال‬‫و‬‫د‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهي‬‫ات‬‫ر‬‫متغي‬ ‫او‬ ‫قيم‬ ‫إرسال‬ ‫إلى‬ ‫تحتاج‬ ‫فإنها‬ ‫وبالتالي‬ ‫ت‬
‫في‬ ‫األخذ‬ ‫مع‬ ‫الفئة‬ ‫نفس‬ ‫في‬ )‫(مشيد‬ ‫بناء‬ ‫دالة‬ ‫من‬ ‫اكثر‬ ‫يف‬‫ر‬‫تع‬ ‫للمبرمج‬ ‫ويمكن‬ ‫تنفيذها‬ ‫عند‬
‫عدد‬ ‫في‬ ‫تختلف‬ ‫أن‬ ‫على‬ ‫الفئة‬ ‫اسم‬ ‫نفس‬ ‫تحمل‬ ‫أن‬ ‫يجب‬ ‫جميعها‬ ‫المشيدات‬ ‫هذه‬ ‫بأن‬ ‫العتبار‬
‫ت‬ ‫أو‬ ‫المعامالت‬ ‫اع‬‫و‬‫ان‬ ‫أو‬ )‫ات‬‫ر‬‫امت‬‫ر‬‫(البا‬ ‫المعامالت‬‫بينها‬ ‫التميز‬ ‫يتم‬ ‫لكي‬ ‫المعامالت‬ ‫هذه‬ ‫اع‬‫و‬‫أن‬ ‫تيب‬‫ر‬
‫في‬ ‫المفهوم‬ ‫هذا‬ ‫توضيح‬ ‫تم‬ ‫أن‬‫و‬ ‫سبق‬ ‫وقد‬ ،‫للمشيد‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫ـ‬‫ب‬ ‫يعرف‬ ‫ما‬ ‫وهذا‬ ‫استدعائها‬ ‫أثناء‬
.‫ال‬‫و‬‫للد‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫ع‬‫موضو‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
11
‫المشيدات‬ ‫استدعاء‬Constructor Invocation:
‫إ‬ ‫ال‬‫و‬‫الد‬‫و‬ ‫المشيدات‬ ‫بين‬ ‫تشابه‬ ‫اوجه‬ ‫وجود‬ ‫من‬ ‫غم‬‫بالر‬‫فبينما‬ ،‫استدعائها‬ ‫يقة‬‫ر‬‫ط‬ ‫في‬ ‫تختلف‬ ‫أنها‬ ‫ل‬
‫فيها‬ ‫يتم‬ ‫ه‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫تستدعى‬ ‫المشيدات‬ ‫فإن‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫اسمها‬ ‫كتابة‬ ‫خالل‬ ‫من‬ ‫ال‬‫و‬‫الد‬ ‫تستدعى‬
‫المفتاحية‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫وذلك‬ ‫المشيد‬ ‫بها‬ ‫الموجود‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬new‫أن‬ ‫كما‬ ،
‫ال‬ ‫كان‬ ‫حالة‬ ‫في‬ ‫يختلف‬ ‫المشيدات‬ ‫اع‬‫و‬‫أن‬ ‫استدعاء‬‫ل‬ ‫ام‬ ‫اضي‬‫ر‬‫افت‬ ‫مشيد‬ ‫استدعائه‬ ‫المطلوب‬ ‫مشيد‬
:‫النوعين‬ ‫لكال‬ ‫العام‬ ‫الشكل‬ ‫نقدم‬ ‫يلي‬ ‫وفيما‬
‫اضي‬‫ر‬‫االفت‬ ‫المشيد‬ ‫الستدعاء‬ ‫العام‬ ‫الشكل‬Constructor InvocationDefault:
‫اسم‬ ‫ثم‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫يتم‬ )‫اضي‬‫ر‬‫الفت‬ ‫(المشيد‬ ‫معامالت‬ ‫على‬ ‫يحتوي‬ ‫ل‬ ‫الذي‬ ‫المشيد‬ ‫لستدعاء‬
‫عالمة‬ ‫ثم‬ ‫الكائن‬‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫ثم‬ "=""new":‫التالي‬ ‫النحو‬ ‫على‬ ‫الفئة‬ ‫اسم‬ ‫ثم‬
class_name object_name = new class_name
: ‫مالحظة‬‫انشاء‬ ‫فيها‬ ‫يتم‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫تتم‬ ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬ ‫عملية‬ ‫ان‬ ‫نالحظ‬ ‫السابق‬ ‫السطر‬ ‫خالل‬ ‫من‬
.‫المشيد‬ ‫بها‬ ‫الموجود‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬
‫الشكل‬‫العام‬‫الس‬‫تدعاء‬‫مشيد‬‫غير‬‫افتراضي‬InvocationParameterized Constructor:
‫ة‬‫ر‬‫بالضرو‬ ‫سيكون‬ ‫الذي‬‫و‬ )‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫(المشيدات‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫غير‬ ‫أخر‬ ‫مشيد‬ ‫أي‬ ‫لستدعاء‬
‫عالمة‬ ‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫ثم‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫يتم‬ ،‫تقدير‬ ‫اقل‬ ‫على‬ ‫احد‬‫و‬ )‫امتر‬‫ر‬‫(با‬ ‫معامل‬ ‫على‬ ‫محتويا‬
‫الم‬ ‫الكلمة‬ ‫ثم‬ "="‫ة‬‫ز‬‫حجو‬"new")‫ابت‬‫و‬‫ث‬ ‫او‬ ‫ات‬‫ر‬‫(متغي‬ ‫المعامالت‬ ‫بمجموعة‬ ‫متبوعا‬ ‫الفئة‬ ‫اسم‬ ‫ثم‬
:‫التالي‬ ‫النحو‬ ‫على‬ ‫فاصلة‬ ‫بينها‬ ‫تفصل‬ ‫قوسين‬ ‫بين‬ ‫توضع‬ ‫بحيث‬
class_name object_name = new class_name(param1,param2,....)
:‫مالحظة‬‫االفتراض‬ ‫الغير‬ ‫المشيدات‬ ‫من‬ ‫أكثر‬ ‫او‬ ‫مشيد‬ ‫تعريف‬ ‫للمبرمج‬ ‫يمكن‬ ‫ال‬‫دون‬ )‫البارامترية‬ ‫(المشيدات‬ ‫ية‬
.‫االفتراضي‬ ‫المشيد‬ ‫تعريف‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
12
‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫المشيدات‬‫و‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫استدعاء‬‫و‬ ‫يف‬‫ر‬‫تع‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫التالي‬ ‫المثال‬ : ‫مثال‬
:‫ى‬‫الخر‬
class Example{
Example() // ‫االفتراضي‬ ‫المشيد‬ ‫تعريف‬
{
System.out.println("Default constructor");
}
Example(int i, int j) // ‫معاملين‬ ‫على‬ ‫يحتوي‬ ‫مشيد‬ ‫تعريف‬
{
System.out.print("parameterized constructor");
System.out.println(" with Two parameters");
}
Example(int i, int j, int k) // ‫معامالت‬ ‫ثالثة‬ ‫على‬ ‫يحتوي‬ ‫مشيد‬ ‫تعريف‬
{
System.out.print("parameterized constructor");
System.out.println(" with Three parameters");
}
public static void main(String args[]) // ‫الرئيسية‬ ‫الدالة‬
{
// ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬
Example obj = new Example();
// ‫استدعاء‬‫معاملين‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المشيد‬
Example obj2 = new Example(12, 12);
// ‫معامالت‬ ‫ثالث‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المشيد‬ ‫استدعاء‬
Example obj3 = new Example(1, 2, 13);
}
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
13
‫آخر‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫مشيد‬ ‫استدعاء‬Calling one constructor from another:
‫ا‬ ‫تستخدم‬" ‫المفتاحية‬ ‫لكلمة‬this‫في‬ ‫األخذ‬ ‫مع‬ ‫الفئة‬ ‫نفس‬ ‫في‬ ‫آخر‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫مشيد‬ ‫لستدعاء‬ "
" ‫المفتاحية‬ ‫الكلمة‬ ‫باستخدام‬ ‫الستدعاء‬ ‫جملة‬ ‫كتابة‬ ‫ة‬‫ر‬‫ضرو‬ ‫العتبار‬this‫المشيد‬ ‫بداية‬ ‫في‬ "‫(اول‬
)‫المشيد‬ ‫في‬ ‫سطر‬: ‫التالي‬ ‫النحو‬ ‫على‬
this(); // ‫من‬ ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬ ‫حالة‬ ‫في‬‫اخر‬ ‫مشيد‬ ‫اي‬
this(param1,param2,....); // ‫الب‬ ‫المشيدات‬ ‫استدعاء‬ ‫حالة‬ ‫في‬‫ا‬‫رامترية‬
:‫مثال‬
public class Book {
public Book ()
{
System.out.println("Default constructor");
}
public Book (String str)
{
this();// ‫المش‬ ‫استدعاء‬‫اضي‬‫ر‬‫الفت‬ ‫يد‬
System.out.println("Parametrized constructor with single param");
}
public Book (String str, int num)
{
this("Hello"); // ‫الول‬ ‫المشيد‬ ‫استدعاء‬
System.out.println("Parametrized constructor with double args");
}
public Book (int num1, int num2, int num3)
{
this("Hello", 2); // ‫الثاني‬ ‫المشيد‬ ‫استدعاء‬
System.out.println("Parametrized constructor with three args");
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
14
public static void main(String args[]){
// ‫إ‬‫كائ‬ ‫نشاء‬‫الثالث‬ ‫المشيد‬ ‫باستخدام‬ ‫ن‬
Book obj = new Book (5,5,15);
}
}
‫البرنامج‬ ‫مخرجات‬
Default constructor
Parametrized constructor with single param
Parametrized constructor with double args
Parametrized constructor with three args
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
15
‫اثة‬‫ر‬‫الو‬Inheritance:
( ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫األساسية‬ ‫المفاهيم‬ ‫أهم‬ ‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫مصطلح‬ ‫يعتبر‬OOP‫وهي‬ )
‫حي‬ ‫لكائن‬ ‫يمكن‬ ‫حيث‬ ،‫الحية‬ ‫الكائنات‬ ‫حياة‬ ‫في‬ ‫الموجود‬ ‫اثة‬‫ر‬‫الو‬ ‫مصطلح‬ ‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشابه‬
‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫فإن‬ ‫ايضا‬ ،)‫(اب‬ ‫أخر‬ ‫حي‬ ‫كائن‬ ‫من‬ ‫األفعال‬‫و‬ ‫الخصائص‬ ‫يرث‬ ‫أن‬ )‫(ابن‬
‫م‬ ‫تمكننا‬( ‫ابن‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫ن‬subclass‫اب‬ ‫فئة‬ ‫من‬ ‫الطرق‬‫و‬ ‫الخصائص‬ ‫بعض‬ ‫اثة‬‫ر‬‫و‬ ‫على‬ ‫ة‬‫ر‬‫قاد‬ )
(superclass‫المفتاحية‬ ‫الكلمة‬ ‫استخدام‬ ‫خالل‬ ‫من‬ )Extend‫كما‬ ،‫البن‬ ‫الفئة‬ ‫يف‬‫ر‬‫تع‬ ‫أثناء‬
‫غير‬ ‫العكس‬‫و‬ ‫احدة‬‫و‬ ‫اب‬ ‫فئة‬ ‫من‬ ‫ابن‬ ‫فئة‬ ‫من‬ ‫أكثر‬ ‫باشتقاق‬ ‫نقوم‬ ‫أن‬ ‫يمكن‬ ‫أنه‬ ‫إلى‬ ‫ة‬‫ر‬‫اإلشا‬ ‫بنا‬ ‫يجدر‬
‫أن‬ ‫إل‬ ،‫صحيح‬‫كان‬ ‫اذا‬ ‫إل‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫الخصائص‬‫و‬ ‫الطرق‬ ‫اثة‬‫ر‬‫و‬ ‫البن‬ ‫للفئة‬ ‫يمكن‬ ‫ل‬ ‫ه‬
( ‫عام‬ ‫لها‬ ‫الوصول‬ ‫مستوى‬public( ‫محمي‬ ‫او‬ )protected.)
:‫منها‬ ‫مشتقة‬ ‫ابن‬ ‫وفئة‬ ‫اب‬ ‫فئة‬ ‫عن‬ ‫لإلعالن‬ ‫العام‬ ‫الشكل‬
class Super_Class_Name // ‫االب‬ ‫الفئة‬
{
//Members and methods declarations.
}
class Sub_Class_name extends Super_Class_name //‫االبن‬ ‫الفئة‬
{
//Members and methods declarations.
}
‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫اب‬ ‫فئة‬ ‫عن‬ ‫العالن‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬class‫اسم‬ ‫تحت‬
Super_Class_Name‫المحجو‬ ‫الكلمة‬ ‫باستخدام‬ ‫ابن‬ ‫فئة‬ ‫عن‬ ‫العالن‬ ‫تم‬ ‫كما‬‫ة‬‫ز‬class‫تحت‬
‫اسم‬Sub_Class_name‫ة‬‫ز‬‫المحجو‬ ‫بالكلمة‬ ‫متبوعة‬extends‫الب‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫ثم‬
.‫منها‬ ‫المشتقة‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
16
‫م‬‫ثال‬:
class Vehicle {
String color;
int speed;
int size;
void attributes()
{
System.out.println("Color : " + color);
System.out.println("Speed : " + speed);
System.out.println("Size : " + size);
}
}
class Car extends Vehicle {
int CC;
int gears;
void attributescar() {
System.out.println("Color of Car : " + color);
System.out.println("Speed of Car : " + speed);
System.out.println("CC of Car : " + CC);
System.out.println("No of gears of Car : " + gears);
}
}
public class Test {
public static void main(String[] args) {
Car Nissan = new Car(); // ‫االبن‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬
Nissan.color = "Blue";
Nissan.speed = 200 ;
Nissan.CC = 1000;
Nissan.gears = 5;
Nissan.attributescar();
Vehicle Hyundai = new Vehicle ();// ‫االب‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬
Hyundai.color="red";
Hyundai.speed=220;
Hyundai.attributes();
}
}
‫الب‬ ‫الفئة‬
‫البن‬ ‫الفئة‬
‫الفئة‬‫ئيسية‬‫ر‬‫ال‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
17
‫الجافا‬ ‫لغة‬ ‫في‬ ‫اثة‬‫ر‬‫الو‬ ‫اع‬‫و‬‫أن‬Types of inheritance:
‫اثة‬‫ر‬‫الو‬ ‫في‬ ‫تتمثل‬ ‫اثة‬‫ر‬‫الو‬ ‫من‬ ‫اع‬‫و‬‫أن‬ ‫عدة‬ ‫الجافا‬ ‫لغة‬ ‫في‬ ‫توجد‬،‫الحادية‬،‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬
‫باألمثلة‬ ‫شرحا‬ ‫نقدم‬ ‫يلي‬ ‫فيما‬ ‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬:‫اع‬‫و‬‫الن‬ ‫لهذه‬
‫االحادية‬ ‫اثة‬‫ر‬‫الو‬Single Inheritance:
‫فئة‬ ‫اشتقاق‬ ‫فيها‬ ‫يتم‬ ‫حيث‬ ‫استخداما‬‫و‬ ‫سهولة‬ ‫ها‬‫اكثر‬‫و‬ ‫اثة‬‫ر‬‫الو‬ ‫اع‬‫و‬‫أن‬ ‫ابسط‬ ‫من‬ ‫الحادية‬ ‫اثة‬‫ر‬‫الو‬ ‫تعتبر‬
‫الحادية‬ ‫اثة‬‫ر‬‫الو‬ ‫ة‬‫ر‬‫فك‬ ‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬ ‫أب‬ ‫فئة‬ ‫من‬ ‫احدة‬‫و‬ ‫ابن‬:
‫التالي‬ ‫المثال‬ ‫يوضح‬ ‫كما‬‫ال‬ ‫اثة‬‫ر‬‫الو‬ ‫تطبيق‬ ‫يقة‬‫ر‬‫ط‬‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫حادية‬:
Class A // ‫اب‬ ‫فئة‬
{
public void method_A()
{
System.out.println("Parint class method");
}
}
Class B extends A // ‫ابن‬ ‫فئة‬
{
public void method_B()
{
System.out.println("Child class method");
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
18
public static void main(String args[]) // ‫الرئيسية‬ ‫الدالة‬
{
B obj = new B(); // ‫االبن‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬
obj.method_A(); //‫االب‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬
obj.method_B(); //‫االبن‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬
}
}
‫مالحظة‬:‫أنه‬ ‫نالحظ‬ ‫السابق‬ ‫المثال‬ ‫خالل‬ ‫من‬‫من‬ ‫وبالرغم‬‫أ‬" ‫الكائن‬ ‫ن‬obj‫تم‬ "‫اشتقاقه‬( ‫االبن‬ ‫الفئة‬ ‫من‬B)‫إ‬‫ال‬‫أ‬‫ننا‬
" ‫الدالة‬ ‫استدعاء‬ ‫من‬ ‫خالله‬ ‫من‬ ‫تمكنا‬method_A( ‫االب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ "A).
" ‫اسم‬ ‫تحت‬ ‫أب‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬A‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫دالة‬ ‫على‬ ‫تحتوي‬ "
method_A
" ‫اسم‬ ‫تحت‬ ‫ابن‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫تم‬ ‫كما‬B"‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫دالة‬ ‫على‬ ‫تحتوي‬method_B،
" ‫اسم‬ ‫تحت‬ ‫كائن‬ ‫اشتقاق‬ ‫فيها‬ ‫تم‬ ‫التي‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسة‬‫ر‬‫ال‬ ‫الدالة‬ ‫إلى‬ ‫باإلضافة‬obj" ‫الفئة‬ ‫من‬ "B"
‫الدالة‬ ‫استدعاء‬ ‫خالله‬ ‫من‬ ‫تم‬ ‫الذي‬‫و‬method_A‫الدالة‬ ‫وكذلك‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬
method_B‫فإن‬ ‫وبهذا‬ ،‫البن‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬( ‫البن‬ ‫الفئة‬ ‫بأن‬ ‫القول‬ ‫يمكن‬ ‫ه‬B‫اثة‬‫ر‬‫بو‬ ‫قامت‬ )
( ‫الب‬ ‫الفئة‬A" ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫للدالة‬ ‫استدعائها‬ ‫امكانية‬ ‫خالل‬ ‫من‬ )A‫خالل‬ ‫من‬ "
" ‫الكائن‬obj"" ‫البن‬ ‫الفئة‬ ‫من‬ ‫المشتق‬B‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫اثة‬‫ر‬‫الو‬ ‫مفهوم‬ ‫يتضح‬ ‫هنا‬ ‫ومن‬ ،"
‫البن‬ ‫الفئة‬ ‫من‬ ‫مشتق‬ ‫كائن‬ ‫ة‬‫ر‬‫قد‬ ‫خالل‬ ‫من‬‫أن‬ ‫اط‬‫ر‬‫اشت‬ ‫مع‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫موجودة‬ ‫دالة‬ ‫استدعاء‬ ‫من‬
( ‫عام‬ ‫ع‬‫نو‬ ‫من‬ ‫للدالة‬ ‫الوصول‬ ‫مستوى‬ ‫يكون‬public( ‫محمي‬ ‫ع‬‫نو‬ ‫من‬ ‫او‬ )Protected.)
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
19
‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬Multilevel inheritance:
‫وج‬ ‫مع‬ ‫الحادية‬ ‫اثة‬‫ر‬‫الو‬‫و‬ ‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫بين‬ ‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشابه‬ ‫هنالك‬ ‫يوجد‬‫اختالف‬ ‫ود‬
‫ابن‬ ‫فئة‬ ‫اشتقاق‬ ‫امكانية‬ ‫في‬‫من‬ ‫ى‬‫اخر‬‫للفئة‬ ‫أب‬ ‫فئة‬ ‫األولى‬ ‫البن‬ ‫الفئة‬ ‫لتصبح‬ ‫األولى‬ ‫البن‬ ‫الفئة‬
،‫الجديدة‬‫(فئة‬ ‫التعبير‬ ‫صح‬ ‫إن‬ ‫اثة‬‫ر‬‫الو‬ ‫لعملية‬ ‫المنطقي‬ ‫التسلسل‬ ‫ليصبح‬،‫جد‬‫فئة‬،‫أب‬)‫ابن‬ ‫وفئة‬
:‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫تمثيل‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬
‫ا‬ ‫المثال‬‫و‬:‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫تطبيق‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫لتالي‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
21
Class X{
public void methodX()
{
System.out.println("Class X method");
}
}
Class Y extends X
{
public void methodY()
{
System.out.println("class Y method");
}
}
Class Z extends Y{
public void methodZ(){
System.out.println("class Z method");
}
public static void main(String args[])
{
Z obj = new Z();
obj.methodX(); //‫الجد‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬
obj.methodY(); //‫االب‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬
obj.methodZ(); //‫االبن‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬
}
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
21
‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬Hierarchical Inheritance:
‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬ ‫احدة‬‫و‬ ‫أب‬ ‫فئة‬ ‫من‬ ‫ابن‬ ‫فئة‬ ‫من‬ ‫أكثر‬ ‫اشتقاق‬ ‫امكانية‬ ‫في‬ ‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬ ‫تتمثل‬
:‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬ ‫ة‬‫ر‬‫فك‬
‫الهرم‬ ‫الوراثة‬ ‫تطبيق‬ ‫طريقة‬ ‫يوضح‬ ‫التالي‬ ‫والمثال‬:‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫ية‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
22
Class A{
public void methodA()
{
System.out.println("method of Class A");
}
}
Class B extends A{
public void methodB()
{
System.out.println("method of Class B");
}
}
Class C extends A{
public void methodC()
{
System.out.println("method of Class C");
}
}
Class D extends A{
public void methodD()
{
System.out.println("method of Class D");
}
}
Class MyClass{
public static void main(String args[])
{
B obj1 = new B();
C obj2 = new C();
D obj3 = new D();
obj1.methodA();
obj2.methodA();
obj3.methodA();
}
}
‫الهجينة‬ ‫اثة‬‫ر‬‫الو‬‫و‬ ‫المتعددة‬ ‫ثة‬‫ر‬‫ا‬‫و‬‫ال‬ ‫مثل‬ ‫اثة‬‫ر‬‫الو‬ ‫من‬ ‫ى‬‫اخر‬ ‫اع‬‫و‬‫ان‬ ‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫توجد‬ : ‫مالحظة‬‫إ‬‫ل‬‫أ‬‫يمكن‬ ‫ل‬ ‫نه‬
‫الجافا‬ ‫لغة‬ ‫في‬ ‫تطبيقها‬‫إ‬( ‫البيني‬ ‫الوسط‬ ‫آلية‬ ‫خالل‬ ‫من‬ ‫ل‬interface.‫لحقا‬ ‫حها‬‫شر‬ ‫سيتم‬ ‫التي‬ )
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
23
‫المفتاحية‬ ‫الكلمة‬super:
" ‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫لل‬ "‫في‬ ‫الموجودة‬ ‫المشيدات‬‫و‬ ‫ال‬‫و‬‫الد‬‫و‬ )‫ات‬‫ر‬‫(المتغي‬ ‫للبيانات‬ ‫وصول‬
:‫التالي‬ ‫النحو‬ ‫على‬ ‫البن‬ ‫الفئة‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬
:‫االب‬ ‫الفئة‬ ‫في‬ ‫البيانات‬ ‫استدعاء‬
‫المفتاحية‬ ‫الكلمة‬ ‫استخدام‬ ‫يمكن‬"super"‫الموجودة‬ )‫(الخصائص‬ ‫ات‬‫ر‬‫المتغي‬‫و‬ ‫البيانات‬ ‫إلى‬ ‫للوصول‬
‫ال‬ ‫الفئة‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫في‬‫في‬ ‫اعها‬‫و‬‫ان‬‫و‬ ‫ات‬‫ر‬‫المتغي‬ ‫أسماء‬ ‫بين‬ ‫تشابه‬ ‫وجود‬ ‫عند‬ ‫خصوصا‬ ‫بن‬
‫ذلك‬ ‫على‬ ‫وكمثال‬ ‫البن‬ ‫الفئة‬‫و‬ ‫الب‬ ‫الفئة‬ ‫من‬ ‫كل‬:
class Human // ‫االب‬ ‫الفئة‬
{
//‫االب‬ ‫الفئة‬ ‫متغيرات‬
String name="Ahmed";
int id=10;
}
public class Student extends Human // ‫االبن‬ ‫الفئة‬
{
String name="Salem";
int id=520;
void print()
{
// ‫المتغير‬ ‫طباعة‬‫ات‬‫االب‬ ‫الفئة‬ ‫في‬ ‫الموجود‬
System.out.println(super.name);
System.out.println(super.id);
}
public static void main(String[] args)
{
Student obj=new Student(); // ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬‫االبن‬
obj.print(); // ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫الدالة‬ ‫استدعاء‬‫االبن‬
}
}
‫البرنامج‬ ‫تنفيذ‬ ‫ناتج‬:
Ahmed
10
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
24
:‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫االب‬ ‫الفئة‬ ‫في‬ ‫ال‬‫و‬‫الد‬ ‫استدعاء‬
‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫استدع‬ ‫في‬‫الدالة‬ ‫ة‬‫ر‬‫المكر‬ ‫ال‬‫و‬‫الد‬ ‫اء‬‫في‬ ‫الموجودة‬‫من‬ ‫الب‬ ‫الفئة‬
:‫التالي‬ ‫النحو‬ ‫على‬ ‫تكتب‬ ‫حيث‬ ‫ى‬‫اخر‬ ‫دالة‬ ‫أي‬ ‫داخل‬ ‫من‬ ‫او‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫داخل‬
super.method_name();
.‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫سطر‬ ‫اول‬ ‫في‬ ‫تكتب‬ ‫أن‬ ‫على‬
class Device
{
Device ()
{
System.out.println("defult Parent Constructor");
}
Device (int x)
{
System.out.println("Second Parent Constructor");
}
void print()
{
System.out.println("Method in Parent class");
}
}
public class Computer extends Device
{
Computer()
{
super.print(); // ‫االب‬ ‫الفئة‬ ‫في‬ print‫الدالة‬ ‫استدعاء‬
}
public static void main(String[] args)
{
Computer obj=new Computer();
}
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
25
‫الكلمة‬ ‫خالل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫في‬ )‫المشيد‬ ‫(غير‬ ‫دالة‬ ‫استدعاء‬ ‫يوضح‬ ‫التالي‬ ‫المثال‬ : ‫مثال‬
‫المفتاحية‬super‫الفئة‬ ‫في‬ ‫دالة‬ ‫خالل‬ ‫من‬.‫البن‬
class Animal{
public void move()
{
System.out.println("Animals can move");
}
}
class Dog extends Animal{
public void move()
{
super.move(); // invokes the super class method
System.out.println("Dogs can walk and run");
}
}
public class TestDog{
public static void main(String args[]){
Animal b = new Dog(); // Animal reference but Dog object
b.move(); //Runs the method in Dog class
}
}
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
26
:‫االب‬ ‫الفئة‬ ‫في‬ ‫المشيد‬ ‫استدعاء‬
‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫حيث‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬ ‫في‬
:‫التالي‬ ‫النحو‬ ‫على‬ ‫تكتب‬
super();
‫على‬‫أ‬‫في‬ ‫تكتب‬ ‫ن‬‫أ‬‫و‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫سطر‬ ‫ول‬‫إ‬: ‫التالية‬ ‫الخطأ‬ ‫رسالة‬ ‫ستظهر‬ ‫ل‬
“Constructor call must be the first statement in a constructor”
‫مثال‬:
class Device
{
Device()
{
System.out.println("Parent Constructor");
}
}
public class Computer extends Device
{
Computer()
{
super(); // ‫االب‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬
System.out.println("child Constructor");
}
public static void main(String[] args)
{
Computer obj=new Computer();// ‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬
}
}
‫المفتاحية‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫يمكننا‬ ‫كما‬super‫التي‬ ‫(المشيدات‬ ‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫المشيدات‬ ‫استدعاء‬
‫المفتاحية‬ ‫الكلمة‬ ‫امام‬ ‫القوسين‬ ‫بين‬ ‫المعامل‬ ‫قيمة‬ ‫فاق‬‫ر‬‫ا‬ ‫خالل‬ ‫من‬ )‫معامالت‬ ‫على‬ ‫تحتوي‬super
:‫التالي‬ ‫النحو‬ ‫على‬
super(value);
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
27
‫مثال‬:
class Computer
{
Computer ()
{
System.out.println("defult Parent Constructor");
}
Computer (int x)
{
System.out.println("Second Parent Constructor "+x);
}
}
public class Laptop extends Computer
{
Laptop()
{
super(2);
}
public static void main(String[] args)
{
Laptop obj=new Laptop();
}
}
‫البرنامج‬ ‫مخرجات‬
Second Parent Constructor 2
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
28
)‫(االشكال‬ ‫االوجه‬ ‫تعدد‬Polymorphism:
‫ال‬ ‫تعددية‬ ‫او‬ ‫الوجه‬ ‫تعددية‬ ‫مصطلح‬ ‫يعتبر‬‫البرمجة‬ ‫في‬ ‫المستخدمة‬ ‫المصطلحات‬ ‫أهم‬ ‫من‬ ‫شكال‬
( ‫بالهدف‬ ‫الموجهة‬OOP‫الذي‬ ‫الكائن‬ ‫على‬ ‫اعتمادا‬ ‫مختلفة‬ ‫بأفعال‬ ‫الدالة‬ ‫تقوم‬ ‫أن‬ ‫امكانية‬ ‫ويعني‬ )
‫التحميل‬ ‫وهما‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫نوعين‬ ‫خالل‬ ‫من‬ ‫ذلك‬ ‫تمثيل‬ ‫ويمكن‬ ‫خالله‬ ‫من‬ ‫استدعائها‬ ‫يتم‬
( ‫ال‬‫و‬‫للد‬ ‫ائد‬‫ز‬‫ال‬Method Overloading‫تجاه‬ ‫و‬ )( ‫الدالة‬ ‫ل‬Method Overriding.)
‫االشكال‬ ‫تعدد‬ ‫اع‬‫و‬‫أن‬Types of polymorphism:
:‫وهما‬ ‫الجافا‬ ‫لغة‬ ‫في‬ ‫الشكال‬ ‫تعددية‬ ‫من‬ ‫نوعان‬ ‫هنالك‬ ‫يوجد‬
:‫الثابتة‬ ‫األوجه‬ ‫تعددية‬Compile time polymorphism (static polymorphism).:
‫للدال‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫في‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫ع‬‫النو‬ ‫هذا‬ ‫يتمثل‬‫ة‬Method Overloading‫الذي‬‫و‬
‫في‬ ‫ال‬‫و‬‫الد‬ ‫هذه‬ ‫تختلف‬ ‫أن‬ ‫على‬ ‫الفئة‬ ‫نفس‬ ‫في‬ ‫السم‬ ‫بنفس‬ ‫دالة‬ ‫من‬ ‫أكثر‬ ‫يف‬‫ر‬‫تع‬ ‫إمكانية‬ ‫في‬ ‫يتمثل‬
‫اع‬‫و‬‫أن‬ ‫تيب‬‫ر‬‫ت‬ ،‫الدالة‬ ‫معامالت‬ ‫اع‬‫و‬‫أن‬ ،‫الدالة‬ ‫معامالت‬ ‫(عدد‬ ‫في‬ ‫يتمثل‬ ‫الذي‬‫و‬ ‫الدالة‬ ‫بتوقيع‬ ‫يعرف‬ ‫ما‬
.)‫الدالة‬ ‫معامالت‬
‫ة‬‫المتغير‬ ‫االوجه‬ ‫تعددية‬Runtime polymorhism( Dynamic polymorphism):
‫الدالة‬ ‫تجاهل‬ ‫في‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫ع‬‫النو‬ ‫هذا‬ ‫يتمثل‬Method Overriding‫مصطلح‬ ‫ويختلف‬ ،
Method Overriding‫مصطلح‬ ‫عن‬Method Overloading‫الذي‬‫و‬ ‫مسبقا‬ ‫شرحه‬ ‫تم‬ ‫الذي‬
‫التميز‬ ‫يتم‬ ‫السم‬ ‫بنفس‬ ‫دالة‬ ‫من‬ ‫اكثر‬ ‫على‬ ‫تحتوي‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫امكانية‬ ‫يعني‬‫ما‬ ‫خالل‬ ‫من‬ ‫بينها‬
‫مصطلح‬ ‫يعني‬ ‫بينما‬ ‫الدالة‬ ‫بتوقيع‬ ‫يعرف‬Method Overriding‫أب‬ ‫فئة‬ ‫في‬ ‫دالة‬ ‫يف‬‫ر‬‫تع‬ ‫امكانية‬
‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬
‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬
‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬
‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬
Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬
29
‫الذي‬ ‫الكائن‬ ‫مرجعية‬ ‫خالل‬ ‫من‬ ‫بينها‬ ‫التمييز‬ ‫يتم‬ ‫بحيث‬ ‫السم‬ ‫بنفس‬ ‫منه‬ ‫مشتق‬ ‫ابن‬ ‫فئة‬ ‫في‬ ‫ى‬‫أخر‬‫و‬
.‫الدالة‬ ‫هذه‬ ‫يستدعي‬
‫م‬:‫ثال‬
class Human{
public void eat()
{
System.out.println("Human is eating");
}
}
class Boy extends Human{
public void eat()
{
System.out.println("Boy is eating");
}
public static void main( String args[])
{
Boy obj = new Boy();
obj.eat();
}
}
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi
Java oop by_salem_adrugi

Contenu connexe

Tendances

Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programmingAmit Soni (CTFL)
 
OOP interview questions & answers.
OOP interview questions & answers.OOP interview questions & answers.
OOP interview questions & answers.Questpond
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPTAjay Chimmani
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#Hawkman Academy
 
Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Michelle Anne Meralpis
 
Java Course 11: Design Patterns
Java Course 11: Design PatternsJava Course 11: Design Patterns
Java Course 11: Design PatternsAnton Keks
 
cloud computing 5.pptx
cloud computing 5.pptxcloud computing 5.pptx
cloud computing 5.pptxJatin673232
 
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaJava Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaEdureka!
 
Enumeration in Java Explained | Java Tutorial | Edureka
Enumeration in Java Explained | Java Tutorial | EdurekaEnumeration in Java Explained | Java Tutorial | Edureka
Enumeration in Java Explained | Java Tutorial | EdurekaEdureka!
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaAjay Sharma
 

Tendances (20)

Package in Java
Package in JavaPackage in Java
Package in Java
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
OOP interview questions & answers.
OOP interview questions & answers.OOP interview questions & answers.
OOP interview questions & answers.
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
 
Java Basics
Java BasicsJava Basics
Java Basics
 
Inner class
Inner classInner class
Inner class
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)Basic Concepts of OOPs (Object Oriented Programming in Java)
Basic Concepts of OOPs (Object Oriented Programming in Java)
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Java Course 11: Design Patterns
Java Course 11: Design PatternsJava Course 11: Design Patterns
Java Course 11: Design Patterns
 
cloud computing 5.pptx
cloud computing 5.pptxcloud computing 5.pptx
cloud computing 5.pptx
 
Java Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | EdurekaJava Design Patterns Tutorial | Edureka
Java Design Patterns Tutorial | Edureka
 
Enumeration in Java Explained | Java Tutorial | Edureka
Enumeration in Java Explained | Java Tutorial | EdurekaEnumeration in Java Explained | Java Tutorial | Edureka
Enumeration in Java Explained | Java Tutorial | Edureka
 
Java Notes
Java Notes Java Notes
Java Notes
 
Java features
Java featuresJava features
Java features
 
OOPS Basics With Example
OOPS Basics With ExampleOOPS Basics With Example
OOPS Basics With Example
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Oops
OopsOops
Oops
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 

En vedette

شرح مقرر البرمجة 2 لغة جافا - الوحدة الثامنة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الثامنةشرح مقرر البرمجة 2   لغة جافا - الوحدة الثامنة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثامنةجامعة القدس المفتوحة
 
Lec4/nested if statements/ by :Salem_Adrugi
Lec4/nested if statements/ by :Salem_AdrugiLec4/nested if statements/ by :Salem_Adrugi
Lec4/nested if statements/ by :Salem_AdrugiSalem Adrugi
 
Java arrays/ By : Salem_Adrugi
Java arrays/ By : Salem_AdrugiJava arrays/ By : Salem_Adrugi
Java arrays/ By : Salem_AdrugiSalem Adrugi
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الخامسة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الخامسةشرح مقرر البرمجة 2   لغة جافا - الوحدة الخامسة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الخامسةجامعة القدس المفتوحة
 
مقدمة الي الجافا
مقدمة الي الجافامقدمة الي الجافا
مقدمة الي الجافاMohamed IBrahim
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الرابعة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الرابعةشرح مقرر البرمجة 2   لغة جافا - الوحدة الرابعة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الرابعةجامعة القدس المفتوحة
 
Java methods/by Salem_Adrugi
Java methods/by Salem_AdrugiJava methods/by Salem_Adrugi
Java methods/by Salem_AdrugiSalem Adrugi
 
Classroom Management Techniques
Classroom Management TechniquesClassroom Management Techniques
Classroom Management TechniquesBaita Sapad
 

En vedette (9)

شرح مقرر البرمجة 2 لغة جافا - الوحدة الثامنة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الثامنةشرح مقرر البرمجة 2   لغة جافا - الوحدة الثامنة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الثامنة
 
Lec4/nested if statements/ by :Salem_Adrugi
Lec4/nested if statements/ by :Salem_AdrugiLec4/nested if statements/ by :Salem_Adrugi
Lec4/nested if statements/ by :Salem_Adrugi
 
Java arrays/ By : Salem_Adrugi
Java arrays/ By : Salem_AdrugiJava arrays/ By : Salem_Adrugi
Java arrays/ By : Salem_Adrugi
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الخامسة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الخامسةشرح مقرر البرمجة 2   لغة جافا - الوحدة الخامسة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الخامسة
 
مقدمة الي الجافا
مقدمة الي الجافامقدمة الي الجافا
مقدمة الي الجافا
 
Gem1st answer2015
Gem1st answer2015Gem1st answer2015
Gem1st answer2015
 
شرح مقرر البرمجة 2 لغة جافا - الوحدة الرابعة
شرح مقرر البرمجة 2   لغة جافا - الوحدة الرابعةشرح مقرر البرمجة 2   لغة جافا - الوحدة الرابعة
شرح مقرر البرمجة 2 لغة جافا - الوحدة الرابعة
 
Java methods/by Salem_Adrugi
Java methods/by Salem_AdrugiJava methods/by Salem_Adrugi
Java methods/by Salem_Adrugi
 
Classroom Management Techniques
Classroom Management TechniquesClassroom Management Techniques
Classroom Management Techniques
 

Similaire à Java oop by_salem_adrugi

Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingOmar Albelbaisy
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى PhpPrmigo
 
لغة البرمجة سكالا
لغة البرمجة سكالالغة البرمجة سكالا
لغة البرمجة سكالاMounir Benhalla
 
javascript2
javascript2javascript2
javascript2osman do
 
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxSultanAlAnazi42
 
Java 8 lambda expression
Java 8 lambda expressionJava 8 lambda expression
Java 8 lambda expressionRabei Dogho
 
التدريب على نموذج IFLA-LRM / ترجمة محمد عبد الحميد معوض
التدريب على نموذج  IFLA-LRM / ترجمة محمد عبد الحميد معوضالتدريب على نموذج  IFLA-LRM / ترجمة محمد عبد الحميد معوض
التدريب على نموذج IFLA-LRM / ترجمة محمد عبد الحميد معوضMuhammad Muawwad
 
الكائنات التعليمية
الكائنات التعليميةالكائنات التعليمية
الكائنات التعليميةDalal Alotibi
 

Similaire à Java oop by_salem_adrugi (10)

Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
 
لغة البرمجة سكالا
لغة البرمجة سكالالغة البرمجة سكالا
لغة البرمجة سكالا
 
الدرس 2.pdf
الدرس 2.pdfالدرس 2.pdf
الدرس 2.pdf
 
الدرس 3 .pdf
الدرس 3 .pdfالدرس 3 .pdf
الدرس 3 .pdf
 
javascript2
javascript2javascript2
javascript2
 
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
 
Java 8 lambda expression
Java 8 lambda expressionJava 8 lambda expression
Java 8 lambda expression
 
التدريب على نموذج IFLA-LRM / ترجمة محمد عبد الحميد معوض
التدريب على نموذج  IFLA-LRM / ترجمة محمد عبد الحميد معوضالتدريب على نموذج  IFLA-LRM / ترجمة محمد عبد الحميد معوض
التدريب على نموذج IFLA-LRM / ترجمة محمد عبد الحميد معوض
 
الكائنات التعليمية
الكائنات التعليميةالكائنات التعليمية
الكائنات التعليمية
 

Dernier

الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxالوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxMohamadAljaafari
 
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfالتعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfNaseej Academy أكاديمية نسيج
 
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxالتعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxyjana1298
 
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .ppt
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .pptالفعل الصحيح والفعل المعتل ونواعه لفيف نقص .ppt
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .pptNaeema18
 
مدخل لعلم الارشاد السياحي الفصل الاول.pptx
مدخل لعلم الارشاد السياحي الفصل الاول.pptxمدخل لعلم الارشاد السياحي الفصل الاول.pptx
مدخل لعلم الارشاد السياحي الفصل الاول.pptxtourismistchristenaa
 
أمثلة عن قضية السرقات الشعريه والانتحال في الشعر
أمثلة عن قضية السرقات الشعريه والانتحال في الشعرأمثلة عن قضية السرقات الشعريه والانتحال في الشعر
أمثلة عن قضية السرقات الشعريه والانتحال في الشعرneamam383
 
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxدرس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxNaceraLAHOUEL1
 
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجه
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجهأهمية كرة القدم ومخاطر التعصب الكروي وعلاجه
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجهneamam383
 
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdf
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdfالخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdf
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdfabdomjido9
 
أنواع الحياة والاغراض الشعرية في العصر الجاهلي
أنواع الحياة والاغراض الشعرية في العصر الجاهليأنواع الحياة والاغراض الشعرية في العصر الجاهلي
أنواع الحياة والاغراض الشعرية في العصر الجاهليneamam383
 
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptوزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptAdamIdiris
 
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docx
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docxمخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docx
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docxouassam
 
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxنشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxNaceraLAHOUEL1
 

Dernier (13)

الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxالوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
 
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfالتعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
 
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxالتعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
 
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .ppt
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .pptالفعل الصحيح والفعل المعتل ونواعه لفيف نقص .ppt
الفعل الصحيح والفعل المعتل ونواعه لفيف نقص .ppt
 
مدخل لعلم الارشاد السياحي الفصل الاول.pptx
مدخل لعلم الارشاد السياحي الفصل الاول.pptxمدخل لعلم الارشاد السياحي الفصل الاول.pptx
مدخل لعلم الارشاد السياحي الفصل الاول.pptx
 
أمثلة عن قضية السرقات الشعريه والانتحال في الشعر
أمثلة عن قضية السرقات الشعريه والانتحال في الشعرأمثلة عن قضية السرقات الشعريه والانتحال في الشعر
أمثلة عن قضية السرقات الشعريه والانتحال في الشعر
 
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxدرس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
 
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجه
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجهأهمية كرة القدم ومخاطر التعصب الكروي وعلاجه
أهمية كرة القدم ومخاطر التعصب الكروي وعلاجه
 
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdf
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdfالخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdf
الخرائط الموضوعاتية وتحليلية - المحاضرة الثالثة.pdf
 
أنواع الحياة والاغراض الشعرية في العصر الجاهلي
أنواع الحياة والاغراض الشعرية في العصر الجاهليأنواع الحياة والاغراض الشعرية في العصر الجاهلي
أنواع الحياة والاغراض الشعرية في العصر الجاهلي
 
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptوزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
 
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docx
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docxمخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docx
مخطط رياضيات .مخطط الفترة 4 و 5 رياضيات سنة سادسة6.docx
 
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxنشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
 

Java oop by_salem_adrugi

  • 1. Java Programming Language ( Console Application) ‫احملاضر‬:‫الدروقي‬ ‫مسعود‬ ‫سامل‬ ‫جامعة‬‫المرقب‬-‫كلية‬‫التربية‬-‫الخمس‬ 2016 Java OOP Java ‫الربجمة‬ ‫اساسيات‬‫باهلدف‬ ‫املوجهة‬‫اجلافا‬ ‫لغة‬ ‫باستخدام‬ OOP Fundamental Using Java By: Salem.M.Adrugi
  • 2. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 1 ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬Object Oriented Programming: ( ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬Object Oriented Programming)( ‫وتختصر‬OOP‫ة‬‫ر‬‫عبا‬ ‫هي‬ ) ‫اساسا‬ ‫يعتمد‬ ‫برمجة‬ ‫اسلوب‬( ‫الحقيقة‬ ‫الحياة‬ ‫نمط‬ ‫محاكاة‬ ‫على‬Real Live‫التركيز‬ ‫خالل‬ ‫من‬ ) ‫بدل‬ ‫البيانات‬‫و‬ ‫الكائنات‬ ‫فئات‬ ‫مفهوم‬ ‫على‬‫البرمجة‬ ‫اسلوب‬ ‫يعتمد‬ ‫حيث‬ ،‫المنطق‬‫و‬ ‫الحداث‬ ‫من‬ ‫فئات‬ ‫إلى‬ ‫نامج‬‫ر‬‫الب‬ ‫تقسيم‬ ‫على‬ ‫بالهدف‬ ‫الموجهة‬(Classes)‫مج‬ ‫فئة‬ ‫كل‬ ‫تضم‬‫الكائنات‬ ‫من‬ ‫موعة‬ (Objects)‫كل‬ ‫أن‬ ‫نجد‬ ‫الحقيقية‬ ‫الحياة‬ ‫اقع‬‫و‬ ‫إلى‬ ‫النظر‬ ‫وعند‬ ،‫الفعال‬‫و‬ ‫الخصاص‬ ‫في‬ ‫المتشابهة‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫له‬ ‫كائن‬ ‫إل‬ ‫هو‬ ‫ما‬ ‫وجماد‬ ‫حية‬ ‫كائنات‬ ‫من‬ ‫الحياة‬ ‫هذه‬ ‫في‬ ‫موجود‬ ‫هو‬ ‫ما‬ ‫المت‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫تضم‬ ‫فصيلة‬ ‫او‬ ‫فئة‬ ‫تحت‬ ‫الكائن‬ ‫هذا‬ ‫ج‬‫ويندر‬ ‫الفعال‬‫و‬‫في‬ ‫معه‬ ‫شابه‬ .‫الفعال‬‫و‬ ‫الصفات‬ ‫من‬ ‫العديد‬ ‫مثال‬1::‫مركبة‬ ‫الفئة‬‫منها‬ ‫نشتق‬ ‫أن‬ ‫يمكن‬،‫ة‬‫ر‬‫(سيا‬ ‫الكائنات‬،‫اجة‬‫ر‬‫د‬،‫ة‬‫ر‬‫طائ‬‫شاحنة‬.) ( ‫مثل‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫منها‬ ‫كل‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫التي‬‫و‬،‫ع‬‫النو‬،‫اللون‬،‫المحرك‬ ‫قوة‬ .)‫الصنع‬ ‫يخ‬‫ر‬‫تا‬ ،‫الركاب‬ ‫عدد‬ ‫بب‬ ‫القيام‬ ‫الكائنات‬ ‫هذه‬ ‫تستطيع‬ ‫كما‬‫تشغيل‬ ، ‫التوقف‬ ، ‫النطالق‬ ( ‫مثل‬ ‫المشتركة‬ ‫الفعال‬ ‫عض‬ ) ‫المحرك‬ ‫تشغيل‬ ‫ايقاف‬ ، ‫المحرك‬ ‫مثال‬2: :‫طالب‬ ‫الفئة‬( ‫الكائنات‬ ‫منها‬ ‫نشتق‬ ‫أن‬ ‫يمكن‬Ahmed,Salem,Mhamed) ‫السنة‬ ، ‫القيد‬ ‫قم‬‫ر‬ ، ‫(السم‬ ‫مثال‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫منها‬ ‫كل‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫التي‬‫و‬ ‫الفصلي‬ ‫المعدل‬ ، ‫اسية‬‫ر‬‫الد‬.)
  • 3. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 2 ‫،حضور‬ ‫الورق‬ ‫على‬ ‫الكتابة‬ ( ‫مثل‬ ‫المشتركة‬ ‫الفعال‬ ‫ببعض‬ ‫القيام‬ ‫الكائنات‬ ‫هذه‬ ‫تستطيع‬ ‫كما‬ .) ‫المتحان‬ ‫دخول‬ ، ‫ة‬‫ر‬‫للمحاض‬ ‫الستماع‬ ، ‫ة‬‫ر‬‫محاض‬ .‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫اساليب‬ ‫عليها‬ ‫تعتمد‬ ‫التي‬ ‫ئيسة‬‫ر‬‫ال‬ ‫المفاهيم‬ ‫اهم‬ ‫نقدم‬ ‫يلي‬ ‫وفيما‬ ‫الكائنات‬ ‫و‬ ‫الفئات‬& ObjectsClasses: ( ‫الفئة‬Class):‫معين‬ ‫ع‬‫لنو‬ ‫شامل‬ ‫تمثيل‬ ‫هي‬‫مجموعة‬ ‫اشتقاق‬ ‫خالله‬ ‫من‬ ‫نستطيع‬ ‫األشياء‬ ‫من‬ ‫خالله‬ ‫من‬ ‫نستطيع‬ ‫عام‬ ‫قالب‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫الفئة‬ ‫أن‬ ‫بمعني‬ ‫الخصائص‬ ‫من‬ ‫العديد‬ ‫في‬ ‫تتشابه‬ ‫كائنات‬ :‫التالي‬ ‫بالشكل‬ ‫الفئة‬ ‫تمثيل‬ ‫ويمكن‬ ‫الكائنات‬ ‫اشتقاق‬ Class_Name Class_Properties Class_Methods :‫مثال‬
  • 4. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 3 ( ‫الكائن‬Object:)‫ح‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهو‬‫منها‬ ‫المشتق‬ ‫الفئة‬ ‫حالت‬ ‫من‬ ‫الة‬‫في‬ ‫تتشابه‬ ‫و‬ ‫الكائن‬ ‫هذا‬ ‫اسم‬ ‫كائن‬ ‫لكل‬ ‫يكون‬ ‫بحيث‬ ‫الفئة‬ ‫نفس‬ ‫من‬ ‫المشتقة‬ ‫الكائنات‬ ‫من‬ ‫العديد‬ ‫مع‬ ‫الخصائص‬ ‫بعض‬ ‫المش‬ ‫الكائنات‬ ‫بقية‬ ‫مع‬ ‫تتشابه‬ ‫أن‬ ‫يمكن‬ ‫به‬ ‫خاصة‬ ‫وخصائص‬ ‫الكائنات‬ ‫بقية‬ ‫عن‬ ‫له‬ ‫مميز‬‫من‬ ‫تقة‬ ‫الكائن‬ ‫سلوك‬ ‫تمثل‬ ‫افعال‬‫و‬ ‫الفئة‬ ‫نفس‬" ‫الفئة‬ ‫من‬ ‫مشتق‬ ‫كائن‬ ‫يمثل‬ ‫التالي‬ ‫الشكل‬‫و‬Circle:" ‫الخصائص‬Properties:‫من‬ ‫غم‬‫وبالر‬ ‫الكائنات‬ ‫مظهر‬ ‫من‬ ‫تغير‬ ‫التي‬ ‫الصفات‬ ‫من‬ ‫مجموعة‬ ‫هي‬ ‫الكائنات‬ ‫من‬ ‫كائن‬ ‫لكل‬ ‫أنه‬ ‫إل‬ ‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫المشتركة‬ ‫الخصائص‬ ‫من‬ ‫العديد‬ ‫هنالك‬ ‫أن‬ ( ‫الخصائص‬ ‫امثلة‬ ‫ومن‬ ‫ى‬‫الخر‬ ‫الكائنات‬ ‫عن‬ ‫له‬ ‫ة‬‫ز‬‫الممي‬ )‫الخصائص(الصفات‬ ‫من‬ ‫مجموعة‬‫ا‬،‫للون‬ ،‫ان‬‫و‬‫العن‬،‫المكان‬،‫تفاع‬‫ر‬‫ال‬‫باستخدام‬ ‫الخصائص‬ ‫تمثيل‬ ‫يتم‬ ‫البرمجة‬ ‫عالم‬ ‫وفي‬ ،)‫..الخ‬ ‫العرض‬ .‫الخاصية‬ ‫يمثل‬ ‫الذي‬ ‫المتغير‬ ‫كائن‬ ‫أي‬ ‫خصائص‬ ‫وتغير‬ ‫ضبط‬ ‫ويمكن‬ ،‫ات‬‫ر‬‫متغي‬ ( ‫ال‬‫و‬‫الد‬‫الطرق‬)Methods:‫ة‬‫ر‬‫عبا‬ ‫وهي‬ ‫الكائنات‬ ‫بها‬ ‫تقوم‬ ‫أن‬ ‫يمكن‬ ‫التي‬ ‫الفعال‬ ‫مجموعة‬ ‫وهي‬ ‫معينة‬ ‫وظيفة‬ ‫ألداء‬ ‫الكائن‬ ‫منها‬ ‫المشتق‬ ‫الفئة‬ ‫داخل‬ ‫مبنية‬ ‫محددة‬ ‫بوظائف‬ ‫تقوم‬ ‫ة‬‫ز‬‫جاه‬ ‫ال‬‫و‬‫د‬ ‫عن‬ ‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫كتابة‬ ‫خالل‬ ‫من‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫باستدعائها‬ ‫ال‬‫و‬‫الد‬ ‫هذه‬ ‫تنفيذ‬ ‫ويتم‬ ‫الكائن‬ ‫بسلوك‬ ‫تتعلق‬ ‫كتابة‬ ‫ثم‬ ‫نقطة‬( ‫الدالة‬ ‫اسم‬Method‫أثناء‬ ‫قيما‬ ‫تأخذ‬ ‫ل‬ ‫كونها‬ ‫في‬ ‫الخصائص‬ ‫عن‬ ‫وتختلف‬ ) .‫ال‬‫و‬‫الد‬ ‫ع‬‫موضو‬ ‫في‬ ‫حها‬‫شر‬ ‫تم‬ ‫أن‬‫و‬ ‫سبق‬ ‫وقد‬ ‫كتابها‬
  • 5. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 4 )‫(الفئة‬ ‫الفصيلة‬ ‫عن‬ ‫اإلعالن‬Class Declaration: ‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫استخدام‬ ‫خالل‬ ‫من‬ ‫الفصيلة‬ ‫عن‬ ‫اإلعالن‬ ‫يتم‬class‫ثم‬ ‫الفصيلة‬ ‫اسم‬ ‫يتبعها‬ ‫ثم‬ ‫الفئة‬ ‫قوسي‬‫الفصيلة‬ ‫اسم‬ ‫يبدأ‬ ‫أن‬ ‫يجب‬ ‫أنه‬ ‫مالحظة‬ ‫مع‬ ‫بداخلها‬ ‫الطرق‬‫و‬ ‫الخصائص‬ ‫كتابة‬ ‫ليتم‬ .‫كبير‬ ‫بحرف‬ class Class_name { ‫والدوال‬ ‫الخصائص‬ ‫كتابة‬ ‫يتم‬ ‫هنا‬ } ‫اإل‬ :‫مثال‬‫اسم‬ ‫تحت‬ ‫فصيلة‬ ‫عن‬ ‫عالن‬"Student"‫ت‬‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫حتوي‬: class Student{ String name; int ID; String Dep; int age; String address; double avg; char group; } :‫الفئة‬ ‫من‬ ‫كائنات‬ ‫اشتقاق‬ " ‫الفئة‬ ‫في‬ ‫فة‬‫ر‬‫المع‬ )‫(الخصائص‬ ‫ات‬‫ر‬‫المتغي‬ ‫كافة‬ ‫أن‬ ‫نالحظ‬Student‫قيما‬ ‫إعطائها‬ ‫يمكن‬ ‫ل‬ " ‫ت‬ ‫انما‬‫و‬ ‫ذاته‬ ‫بحد‬ ‫طالب‬ ‫تمثل‬ ‫ل‬ ‫ات‬‫ر‬‫المتغي‬ ‫هذه‬ ‫ألن‬ ‫نفسها‬ ‫الفئة‬ ‫داخل‬‫الطالب‬ ‫لكافة‬ ‫عاما‬ ‫قالبا‬ ‫مثل‬ ‫ولكي‬ ‫الطالب‬ ‫كافة‬ ‫في‬ ‫الخصائص‬ ‫هذه‬ ‫قيم‬ ‫تتساوى‬ ‫إن‬ ‫يمكن‬ ‫ل‬ ‫فإنه‬ ‫الطبيعي‬ ‫ومن‬ ‫النظام‬ ‫في‬ ‫كائن‬ ‫نشتق‬ ‫أن‬ ‫ل‬‫او‬ ‫يجب‬ ‫معين‬ ‫بطالب‬ ‫خاصة‬ ‫قيما‬ ‫الخصائص‬ ‫هذه‬ ‫نعطي‬ ‫أن‬ ‫نستطيع‬ (Object‫الخصائ‬ ‫نفس‬ ‫يحمل‬ ‫كائن‬ ‫منها‬ ‫كل‬ ‫يمثل‬ ‫الفئة‬ ‫هذه‬ ‫من‬ ‫كائنات‬ ‫مجموعة‬ ‫أو‬ )‫(بقيم‬ ‫ص‬ ‫نشتق‬ ‫أن‬ ‫برمجيا‬ ‫ويمكننا‬ ‫الكائن‬ ‫اسم‬ ‫حسب‬ ‫كل‬ ‫قيما‬ ‫الخصائص‬ ‫هذه‬ ‫بإعطاء‬ ‫نقوم‬ ‫ثم‬ )‫مختلفة‬ " ‫الفئة‬ ‫من‬ ‫كائن‬Student:‫التالي‬ ‫السطر‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ " Class_name object_name = new class_name();
  • 6. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 5 ‫القيم‬ ‫إعطاء‬ ‫يتم‬ ‫ثم‬ ‫نامج‬‫ر‬‫للب‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫في‬ ‫السطر‬ ‫هذا‬ ‫يكتب‬ ‫حيث‬‫من‬ ‫الخصائص‬ ‫لكافة‬ ‫على‬ ‫الخاصية‬ ‫قيمة‬ ‫ثم‬ "=" ‫التخصيص‬ ‫عالمة‬ ‫ثم‬ ‫الخاصية‬ ‫ثم‬ ‫النقطة‬ ‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫كتابة‬ ‫خالل‬ :‫التالي‬ ‫النحو‬ Object_name.field_name = value; ‫مثال‬:" ‫الطالب‬ ‫فئة‬ ‫من‬ ‫كائن‬ ‫إنشاء‬Student‫في‬ ‫مسبقا‬ ‫فة‬‫ر‬‫المع‬ "‫لفئة‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬‫ى‬‫أخر‬ " ‫تسمى‬Test" class Student{ String name; int ID; String Dep; double avg; char group; } public class Test{ public static void main(String args[]){ Student st1 = new Student(); st1.name="‫الدروقي‬ ‫;"سالم‬ st1.ID=52362; st1.Dep="‫;"الحاسوب‬ st1.avg=80; st1.group='c'; }} " ‫اسم‬ ‫تحت‬ ‫األولي‬ ‫فئتين‬ ‫من‬ ‫السابقة‬ ‫نامج‬‫ر‬‫الب‬ ‫يتكون‬Student" ‫اسم‬ ‫تحت‬ ‫الثانية‬‫و‬ "Test‫وهي‬ " .‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الفئة‬ ‫مالحظة‬.‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الفئة‬ ‫هي‬ ‫ئيسية‬‫ر‬‫ال‬ ‫الفئة‬ : ‫جم‬ ‫على‬ ‫ائه‬‫و‬‫احت‬ ‫لعدم‬ ‫ا‬‫ر‬‫نظ‬ ‫للمستخدم‬ ‫نتائج‬ ‫أية‬ ‫يعطي‬ ‫لن‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬‫ولكي‬ ‫الطباعة‬ ‫لة‬ " ‫اسم‬ ‫تحت‬ ‫دالة‬ ‫يف‬‫ر‬‫بتع‬ ‫سنقوم‬ ‫فإننا‬ ‫السابقة‬ ‫البيانات‬ ‫طباعة‬ ‫نستطيع‬print‫كافة‬ ‫بإرسال‬ ‫وسنقوم‬ " ‫البيانات‬
  • 7. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 6 ‫بداخلها‬ ‫كتابتها‬ ‫سيتم‬ ‫التي‬ ‫الطباعة‬ ‫جمل‬ ‫إلى‬ ‫وتحويلها‬ ‫باستقبالها‬ ‫لتقوم‬ ‫ات‬‫ر‬‫امت‬‫ر‬‫كبا‬ ‫لها‬ ‫السابقة‬ ‫يلي‬ ‫كما‬ ‫كامال‬ ‫نامج‬‫ر‬‫الب‬ ‫ليصبح‬: 1. public class Test 2. { 3. public static void main(String args[]) 4. { 5. Student st1 = new Student(); //Student ‫الفئة‬ ‫من‬ ‫كان‬ ‫اشتقاق‬ 6. st1.name="‫الدروقي‬ ‫;"سالم‬ 7. st1.ID=52362; 8. st1.Dep=" ‫الحاسو‬‫ب‬ "; 9. st1.avg=80; 10. st1.group='c'; 11. st1.print(st1.name,st1.ID,st1.Dep,st1.avg,st1.group);// ‫الطباعة‬ ‫دالة‬ ‫استدعاء‬ 12. } 13. } 14. class Student //Student ‫الفئة‬ ‫انشاء‬ 15. { 16. String name; 17. int ID; 18. String Dep; 19. double avg; 20. char group; 21. void print(String p1,int p2,String p3,double p4,char p5) 22. { 23. System.out.println("Student name is :" + p1 ); 24. System.out.println("Student id is :" + p2 ); 25. System.out.println("Student department is :" + p3 ); 26. System.out.println("Student average is :" + p4 ); 27. System.out.println("Student group is :" + p5 ); 28. } 29. } ‫للخصائص‬ ‫قيم‬ ‫تخصيص‬ ‫الطباعة‬ ‫دالة‬ ‫الفئة‬ ‫في‬Student ‫الفئة‬ ‫خصائص‬
  • 8. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 7 ‫ش‬:‫السابق‬ ‫البرنامج‬ ‫رح‬ ‫السطر‬ ‫في‬11" ‫اسم‬ ‫تحت‬ ‫فئة‬ ‫إنشاء‬ ‫تم‬Student‫التي‬‫و‬ ‫الخصائص‬ ‫من‬ ‫مجموعة‬ ‫على‬ ‫تحتوي‬ " ‫السطر‬ ‫من‬ ‫تبدأ‬11‫إلى‬22" ‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫ودالة‬print‫السطر‬ ‫من‬ ‫تبدأ‬ "21‫إلى‬22. ‫قم‬‫ر‬ ‫السطر‬ ‫في‬5‫اسم‬ ‫تحت‬ ‫كائن‬ ‫اشتقاق‬ ‫تم‬st1‫الفئة‬ ‫من‬Student. ‫من‬ ‫السطر‬1‫إلى‬12.‫الكائن‬ ‫خصائص‬ ‫لكافة‬ ‫قيم‬ ‫تخصيص‬ ‫فيها‬ ‫تم‬ ‫قم‬‫ر‬ ‫السطر‬ ‫في‬11‫طباعة‬ ‫المطلوب‬ ‫المعامالت‬ ‫كافة‬ ‫رسال‬‫ا‬‫و‬ ‫بالطباعة‬ ‫الخاصة‬ ‫الدالة‬ ‫استدعاء‬ ‫تم‬ .‫قيمها‬ : ‫البرنامج‬ ‫تنفيذ‬ ‫ناتج‬ Student name is :‫الدروقي‬ ‫سالم‬ Student id is :52362 Student department is :‫الحاسوب‬ Student average is :80.0 Student group is :c ‫إ‬:‫المستخدم‬ ‫قبل‬ ‫من‬ ‫الخصائص‬ ‫قيم‬ ‫دخال‬ ‫سابقا‬ ‫عرضت‬ ‫التي‬ ‫النتائج‬ ‫غير‬ ‫ى‬‫اخر‬ ‫نتائج‬ ‫يعطي‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫أنه‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫نالحظ‬ ‫إدخال‬ ‫امكانية‬ ‫المستخدم‬ ‫إلعطاء‬‫و‬ ‫نفسه‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫الخصائص‬ ‫قيم‬ ‫تخصيص‬ ‫تم‬ ‫قد‬ ‫ألنه‬ ‫وذلك‬ ‫اإل‬ ‫جملة‬ ‫استخدام‬ ‫يجب‬ ‫القيم‬‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ة‬‫ر‬‫مباش‬ ‫القيم‬ ‫كتابة‬ ‫من‬ ‫بدل‬ ‫دخال‬(‫في‬ ‫الدخال‬ ‫جمل‬ ‫اجع‬‫ر‬ ‫الجافا‬ ‫لغة‬). :‫التالي‬ ‫النحو‬ ‫على‬ ‫القيم‬ ‫ين‬‫ز‬‫وتخ‬ ‫إلدخال‬ ‫المخصص‬ ‫نامج‬‫ر‬‫الب‬ ‫ء‬‫جز‬ ‫ليصبح‬ st1.name=input.next(); st1.ID=input.nextInt(); st1.Dep=input.next(); st1.avg=input.nextDouble(); st1.group=input.next().charAt(0);
  • 9. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 8 )‫(المشيد‬ ‫البناء‬ ‫دلة‬Constructor: ‫بقية‬ ‫عن‬ ‫ها‬‫تميز‬ ‫يتم‬ ‫و‬ ‫الدالة‬ ‫مع‬ ‫تركيبها‬ ‫في‬ ‫تتشابه‬ ‫نهاية‬ ‫ولها‬ ‫بداية‬ ‫لها‬ ‫برمجية‬ ‫ة‬‫ر‬‫شف‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫هو‬ ‫عن‬ ‫البناء‬ ‫دالة‬ ‫تختلف‬ ‫كما‬ ،‫فيها‬ ‫الموجودة‬ ‫الفئة‬ ‫لسم‬ ‫مطابقا‬ ‫يكون‬ ‫الذي‬ ‫اسمها‬ ‫خالل‬ ‫من‬ ‫ال‬‫و‬‫الد‬ ‫يق‬‫ر‬‫ط‬ ‫في‬ ‫ال‬‫و‬‫الد‬ ‫بقية‬‫فيها‬ ‫يتم‬ ‫ة‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫داخلها‬ ‫الموجودة‬ ‫البرمجية‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيد‬ ‫يتم‬ ‫حيث‬ ‫تنفيذها‬ ‫ة‬ ‫المفتاحية‬ ‫الكلمة‬ ‫باستخدام‬ ‫يتم‬ ‫الذي‬‫و‬ ،‫البناء‬ ‫دالة‬ ‫فيها‬ ‫الموجودة‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬"new" ‫هو‬ ‫كما‬ ‫قيمة‬ ‫جع‬‫تر‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫البناء‬ ‫دالة‬ ‫أن‬ ‫كما‬ ،‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬ ‫عند‬ ‫المستخدمة‬‫و‬ ‫قيمتها‬ ‫إعادة‬ ‫المطلوب‬ ‫ات‬‫ر‬‫المتغي‬ ‫تهيئة‬ ‫في‬ ‫البناء‬ ‫ال‬‫و‬‫د‬ ‫تستخدم‬ ‫و‬ ،‫ى‬‫الخر‬ ‫ال‬‫و‬‫الد‬ ‫بعض‬ ‫في‬ ‫متوفر‬ ‫من‬ ‫نوعان‬ ‫هنالك‬ ‫ويوجد‬ ،‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬ ‫فيها‬ ‫يتم‬ ‫ه‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫ابتدائية‬ ‫قيما‬ ‫إعطائها‬ ‫او‬ :‫البناء‬ ‫ال‬‫و‬‫د‬ ‫ات‬‫ر‬‫امت‬‫ر‬‫با‬ ‫على‬ ‫تحتوي‬ ‫ال‬ ‫بناء‬ ‫ال‬‫و‬‫د‬Non Parameterized Constructor: ‫او‬ ‫قيم‬ ‫إرسال‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬ ‫فإنها‬ ‫وبالتالي‬ ‫معامالت‬ ‫على‬ ‫تحتوي‬ ‫ل‬ ‫بناء‬ ‫ال‬‫و‬‫د‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهي‬ ‫دالة‬ ‫او‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫وتسمى‬ ‫فئة‬ ‫كل‬ ‫في‬ ‫فقط‬ ‫احدة‬‫و‬ ‫دالة‬ ‫منها‬ ‫ويوجد‬ ‫تنفيذها‬ ‫عند‬ ‫ات‬‫ر‬‫متغي‬ ( ‫اضية‬‫ر‬‫الفت‬ ‫البناء‬Default Constructor.)
  • 10. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 9 :‫مثال‬ public class Main_Class // ‫الرئيسية‬ ‫الفئة‬ { public static void main(String[] args)// ‫البرنامج‬ ‫في‬ ‫الرئيسة‬ ‫الدالة‬ { Student Std= new Student(); // Student ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ Std.print(); // ‫الطباعة‬ ‫دالة‬ ‫استدعاء‬ } } class Student // ‫الفئة‬ { public String name="Ahmed"; //name ‫المتغير‬ ‫تعريف‬ public Student() { name="Salem"; //name ‫تهيئة‬‫المتغير‬ } public void print()// ‫الطباعة‬ ‫دالة‬ { System.out.println("welcome Mr "+name); } } ‫إنشاء‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬‫المسماة‬‫و‬ ‫ئيسة‬‫ر‬‫ال‬ ‫الفئة‬ ‫هي‬ ‫األولى‬ ‫فئتين‬ ‫عدد‬ ‫على‬ ‫يحتوي‬ ‫ع‬‫مشرو‬ (Main_class" ‫ئيسية‬‫ر‬‫ال‬ ‫الدالة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الفئة‬ ‫وهي‬ )main‫الفئة‬ ‫هي‬ ‫الثانية‬‫و‬ " "Student( ‫فية‬‫ر‬‫ح‬ ‫سلسلة‬ ‫ع‬‫نو‬ ‫من‬ ‫متغير‬ ‫يف‬‫ر‬‫لتع‬ ‫جملة‬ ‫على‬ ‫وتحتوي‬ "String‫اسم‬ ‫تحت‬ ) "name" ‫ابتدائية‬ ‫قيمة‬ ‫عطائة‬‫ا‬‫و‬ "Ahmed‫كما‬ "‫تح‬( ‫البناء‬ ‫دالة‬ ‫على‬ ‫الفئة‬ ‫هذه‬ ‫توي‬Student) "‫المتغير‬ ‫تهيئة‬ ‫فيها‬ ‫تم‬ ‫التي‬‫و‬name" ‫قيمة‬ ‫عطائه‬‫ا‬‫و‬ "Salem‫الفئة‬ ‫فإن‬ ‫ذلك‬ ‫إلى‬ ‫باإلضافة‬ " "Student‫تحتوي‬ "‫دالة‬ ‫على‬‫الطباعة‬(Print)‫المتغير‬ ‫قيمة‬ ‫لطباعة‬(name). ‫الفئة‬Student ‫البناء‬ ‫دالة‬
  • 11. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 11 ‫البر‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫في‬ ‫ة‬‫ر‬‫مباش‬ ‫يبدأ‬ ‫المترجم‬ ‫فإن‬ ‫نامج‬‫ر‬‫الب‬ ‫تنفيذ‬ ‫عند‬‫الدالة‬ ‫داخل‬ ‫الموجودة‬ ‫مجية‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ ‫يتم‬ ‫بحيث‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسية‬‫ر‬‫ال‬Student‫اسم‬ ‫تحت‬"Std"‫في‬ ‫يتم‬ ‫كما‬ " ‫المشيد‬ ‫استدعاء‬ ‫السطر‬ ‫نفس‬Student" ‫المفتاحية‬ ‫الكلمة‬ ‫وجود‬ ‫خالل‬ ‫من‬ "new‫نفس‬ ‫في‬ " ‫الدالة‬ ‫استدعاء‬ ‫بعدها‬ ‫يتم‬ ‫ثم‬ ‫السطر‬Print‫الفئة‬ ‫في‬ ‫الموجودة‬Student‫الكائن‬ ‫خالل‬ ‫من‬"Std" (‫التالية‬ ‫الجملة‬ ‫طباعة‬ ‫عنها‬ ‫ينتج‬ ‫التي‬ ‫و‬ ‫بداخلها‬ ‫الموجودة‬ ‫البرمجية‬ ‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫ليتم‬welcome Mr Salem.‫الطباعة‬ ‫شاشة‬ ‫على‬ ) ‫من‬ ‫غم‬‫وبالر‬ ‫أنه‬ ‫حيث‬ ،‫المشيد‬ ‫عمل‬ ‫ة‬‫ر‬‫فك‬ ‫نالحظ‬ ‫أن‬ ‫نستطيع‬ ‫السابق‬ ‫نامج‬‫ر‬‫الب‬ ‫تنفيذ‬ ‫ناتج‬ ‫خالل‬ ‫من‬ ‫المتغير‬ ‫قيمة‬ ‫أن‬name" ‫هي‬Ahmed‫ة‬‫ر‬‫الشف‬ ‫تنفيذ‬ ‫تم‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ ‫عند‬ ‫أنه‬ ‫إل‬ " " ‫المسمى‬ ‫المشيد‬ ‫بداخل‬ ‫الموجودة‬ ‫البرمجية‬Student‫المتغير‬ ‫قيمة‬ ‫بتغيير‬ ‫قامت‬ ‫التي‬‫و‬ "name ‫من‬Ahmed‫إلى‬Salem. ‫ات‬‫ر‬‫بارمت‬ ‫على‬ ‫تحتوي‬ ‫بناء‬ ‫ال‬‫و‬‫د‬Parameterized Constructor: ‫معامال‬ ‫على‬ ‫تحتوي‬ ‫بناء‬ ‫ال‬‫و‬‫د‬ ‫عن‬ ‫ة‬‫ر‬‫عبا‬ ‫وهي‬‫ات‬‫ر‬‫متغي‬ ‫او‬ ‫قيم‬ ‫إرسال‬ ‫إلى‬ ‫تحتاج‬ ‫فإنها‬ ‫وبالتالي‬ ‫ت‬ ‫في‬ ‫األخذ‬ ‫مع‬ ‫الفئة‬ ‫نفس‬ ‫في‬ )‫(مشيد‬ ‫بناء‬ ‫دالة‬ ‫من‬ ‫اكثر‬ ‫يف‬‫ر‬‫تع‬ ‫للمبرمج‬ ‫ويمكن‬ ‫تنفيذها‬ ‫عند‬ ‫عدد‬ ‫في‬ ‫تختلف‬ ‫أن‬ ‫على‬ ‫الفئة‬ ‫اسم‬ ‫نفس‬ ‫تحمل‬ ‫أن‬ ‫يجب‬ ‫جميعها‬ ‫المشيدات‬ ‫هذه‬ ‫بأن‬ ‫العتبار‬ ‫ت‬ ‫أو‬ ‫المعامالت‬ ‫اع‬‫و‬‫ان‬ ‫أو‬ )‫ات‬‫ر‬‫امت‬‫ر‬‫(البا‬ ‫المعامالت‬‫بينها‬ ‫التميز‬ ‫يتم‬ ‫لكي‬ ‫المعامالت‬ ‫هذه‬ ‫اع‬‫و‬‫أن‬ ‫تيب‬‫ر‬ ‫في‬ ‫المفهوم‬ ‫هذا‬ ‫توضيح‬ ‫تم‬ ‫أن‬‫و‬ ‫سبق‬ ‫وقد‬ ،‫للمشيد‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫ـ‬‫ب‬ ‫يعرف‬ ‫ما‬ ‫وهذا‬ ‫استدعائها‬ ‫أثناء‬ .‫ال‬‫و‬‫للد‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫ع‬‫موضو‬
  • 12. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 11 ‫المشيدات‬ ‫استدعاء‬Constructor Invocation: ‫إ‬ ‫ال‬‫و‬‫الد‬‫و‬ ‫المشيدات‬ ‫بين‬ ‫تشابه‬ ‫اوجه‬ ‫وجود‬ ‫من‬ ‫غم‬‫بالر‬‫فبينما‬ ،‫استدعائها‬ ‫يقة‬‫ر‬‫ط‬ ‫في‬ ‫تختلف‬ ‫أنها‬ ‫ل‬ ‫فيها‬ ‫يتم‬ ‫ه‬‫ر‬‫م‬ ‫كل‬ ‫في‬ ‫تستدعى‬ ‫المشيدات‬ ‫فإن‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫اسمها‬ ‫كتابة‬ ‫خالل‬ ‫من‬ ‫ال‬‫و‬‫الد‬ ‫تستدعى‬ ‫المفتاحية‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫وذلك‬ ‫المشيد‬ ‫بها‬ ‫الموجود‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫إنشاء‬new‫أن‬ ‫كما‬ ، ‫ال‬ ‫كان‬ ‫حالة‬ ‫في‬ ‫يختلف‬ ‫المشيدات‬ ‫اع‬‫و‬‫أن‬ ‫استدعاء‬‫ل‬ ‫ام‬ ‫اضي‬‫ر‬‫افت‬ ‫مشيد‬ ‫استدعائه‬ ‫المطلوب‬ ‫مشيد‬ :‫النوعين‬ ‫لكال‬ ‫العام‬ ‫الشكل‬ ‫نقدم‬ ‫يلي‬ ‫وفيما‬ ‫اضي‬‫ر‬‫االفت‬ ‫المشيد‬ ‫الستدعاء‬ ‫العام‬ ‫الشكل‬Constructor InvocationDefault: ‫اسم‬ ‫ثم‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫يتم‬ )‫اضي‬‫ر‬‫الفت‬ ‫(المشيد‬ ‫معامالت‬ ‫على‬ ‫يحتوي‬ ‫ل‬ ‫الذي‬ ‫المشيد‬ ‫لستدعاء‬ ‫عالمة‬ ‫ثم‬ ‫الكائن‬‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫ثم‬ "=""new":‫التالي‬ ‫النحو‬ ‫على‬ ‫الفئة‬ ‫اسم‬ ‫ثم‬ class_name object_name = new class_name : ‫مالحظة‬‫انشاء‬ ‫فيها‬ ‫يتم‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫تتم‬ ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬ ‫عملية‬ ‫ان‬ ‫نالحظ‬ ‫السابق‬ ‫السطر‬ ‫خالل‬ ‫من‬ .‫المشيد‬ ‫بها‬ ‫الموجود‬ ‫الفئة‬ ‫من‬ ‫جديد‬ ‫كائن‬ ‫الشكل‬‫العام‬‫الس‬‫تدعاء‬‫مشيد‬‫غير‬‫افتراضي‬InvocationParameterized Constructor: ‫ة‬‫ر‬‫بالضرو‬ ‫سيكون‬ ‫الذي‬‫و‬ )‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫(المشيدات‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫غير‬ ‫أخر‬ ‫مشيد‬ ‫أي‬ ‫لستدعاء‬ ‫عالمة‬ ‫ثم‬ ‫الكائن‬ ‫اسم‬ ‫ثم‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫يتم‬ ،‫تقدير‬ ‫اقل‬ ‫على‬ ‫احد‬‫و‬ )‫امتر‬‫ر‬‫(با‬ ‫معامل‬ ‫على‬ ‫محتويا‬ ‫الم‬ ‫الكلمة‬ ‫ثم‬ "="‫ة‬‫ز‬‫حجو‬"new")‫ابت‬‫و‬‫ث‬ ‫او‬ ‫ات‬‫ر‬‫(متغي‬ ‫المعامالت‬ ‫بمجموعة‬ ‫متبوعا‬ ‫الفئة‬ ‫اسم‬ ‫ثم‬ :‫التالي‬ ‫النحو‬ ‫على‬ ‫فاصلة‬ ‫بينها‬ ‫تفصل‬ ‫قوسين‬ ‫بين‬ ‫توضع‬ ‫بحيث‬ class_name object_name = new class_name(param1,param2,....) :‫مالحظة‬‫االفتراض‬ ‫الغير‬ ‫المشيدات‬ ‫من‬ ‫أكثر‬ ‫او‬ ‫مشيد‬ ‫تعريف‬ ‫للمبرمج‬ ‫يمكن‬ ‫ال‬‫دون‬ )‫البارامترية‬ ‫(المشيدات‬ ‫ية‬ .‫االفتراضي‬ ‫المشيد‬ ‫تعريف‬
  • 13. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 12 ‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫المشيدات‬‫و‬ ‫اضي‬‫ر‬‫الفت‬ ‫المشيد‬ ‫استدعاء‬‫و‬ ‫يف‬‫ر‬‫تع‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫التالي‬ ‫المثال‬ : ‫مثال‬ :‫ى‬‫الخر‬ class Example{ Example() // ‫االفتراضي‬ ‫المشيد‬ ‫تعريف‬ { System.out.println("Default constructor"); } Example(int i, int j) // ‫معاملين‬ ‫على‬ ‫يحتوي‬ ‫مشيد‬ ‫تعريف‬ { System.out.print("parameterized constructor"); System.out.println(" with Two parameters"); } Example(int i, int j, int k) // ‫معامالت‬ ‫ثالثة‬ ‫على‬ ‫يحتوي‬ ‫مشيد‬ ‫تعريف‬ { System.out.print("parameterized constructor"); System.out.println(" with Three parameters"); } public static void main(String args[]) // ‫الرئيسية‬ ‫الدالة‬ { // ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬ Example obj = new Example(); // ‫استدعاء‬‫معاملين‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المشيد‬ Example obj2 = new Example(12, 12); // ‫معامالت‬ ‫ثالث‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المشيد‬ ‫استدعاء‬ Example obj3 = new Example(1, 2, 13); } }
  • 14. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 13 ‫آخر‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫مشيد‬ ‫استدعاء‬Calling one constructor from another: ‫ا‬ ‫تستخدم‬" ‫المفتاحية‬ ‫لكلمة‬this‫في‬ ‫األخذ‬ ‫مع‬ ‫الفئة‬ ‫نفس‬ ‫في‬ ‫آخر‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫مشيد‬ ‫لستدعاء‬ " " ‫المفتاحية‬ ‫الكلمة‬ ‫باستخدام‬ ‫الستدعاء‬ ‫جملة‬ ‫كتابة‬ ‫ة‬‫ر‬‫ضرو‬ ‫العتبار‬this‫المشيد‬ ‫بداية‬ ‫في‬ "‫(اول‬ )‫المشيد‬ ‫في‬ ‫سطر‬: ‫التالي‬ ‫النحو‬ ‫على‬ this(); // ‫من‬ ‫االفتراضي‬ ‫المشيد‬ ‫استدعاء‬ ‫حالة‬ ‫في‬‫اخر‬ ‫مشيد‬ ‫اي‬ this(param1,param2,....); // ‫الب‬ ‫المشيدات‬ ‫استدعاء‬ ‫حالة‬ ‫في‬‫ا‬‫رامترية‬ :‫مثال‬ public class Book { public Book () { System.out.println("Default constructor"); } public Book (String str) { this();// ‫المش‬ ‫استدعاء‬‫اضي‬‫ر‬‫الفت‬ ‫يد‬ System.out.println("Parametrized constructor with single param"); } public Book (String str, int num) { this("Hello"); // ‫الول‬ ‫المشيد‬ ‫استدعاء‬ System.out.println("Parametrized constructor with double args"); } public Book (int num1, int num2, int num3) { this("Hello", 2); // ‫الثاني‬ ‫المشيد‬ ‫استدعاء‬ System.out.println("Parametrized constructor with three args"); }
  • 15. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 14 public static void main(String args[]){ // ‫إ‬‫كائ‬ ‫نشاء‬‫الثالث‬ ‫المشيد‬ ‫باستخدام‬ ‫ن‬ Book obj = new Book (5,5,15); } } ‫البرنامج‬ ‫مخرجات‬ Default constructor Parametrized constructor with single param Parametrized constructor with double args Parametrized constructor with three args
  • 16. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 15 ‫اثة‬‫ر‬‫الو‬Inheritance: ( ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫األساسية‬ ‫المفاهيم‬ ‫أهم‬ ‫من‬ ‫اثة‬‫ر‬‫الو‬ ‫مصطلح‬ ‫يعتبر‬OOP‫وهي‬ ) ‫حي‬ ‫لكائن‬ ‫يمكن‬ ‫حيث‬ ،‫الحية‬ ‫الكائنات‬ ‫حياة‬ ‫في‬ ‫الموجود‬ ‫اثة‬‫ر‬‫الو‬ ‫مصطلح‬ ‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشابه‬ ‫بالهدف‬ ‫الموجهة‬ ‫البرمجة‬ ‫فإن‬ ‫ايضا‬ ،)‫(اب‬ ‫أخر‬ ‫حي‬ ‫كائن‬ ‫من‬ ‫األفعال‬‫و‬ ‫الخصائص‬ ‫يرث‬ ‫أن‬ )‫(ابن‬ ‫م‬ ‫تمكننا‬( ‫ابن‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫ن‬subclass‫اب‬ ‫فئة‬ ‫من‬ ‫الطرق‬‫و‬ ‫الخصائص‬ ‫بعض‬ ‫اثة‬‫ر‬‫و‬ ‫على‬ ‫ة‬‫ر‬‫قاد‬ ) (superclass‫المفتاحية‬ ‫الكلمة‬ ‫استخدام‬ ‫خالل‬ ‫من‬ )Extend‫كما‬ ،‫البن‬ ‫الفئة‬ ‫يف‬‫ر‬‫تع‬ ‫أثناء‬ ‫غير‬ ‫العكس‬‫و‬ ‫احدة‬‫و‬ ‫اب‬ ‫فئة‬ ‫من‬ ‫ابن‬ ‫فئة‬ ‫من‬ ‫أكثر‬ ‫باشتقاق‬ ‫نقوم‬ ‫أن‬ ‫يمكن‬ ‫أنه‬ ‫إلى‬ ‫ة‬‫ر‬‫اإلشا‬ ‫بنا‬ ‫يجدر‬ ‫أن‬ ‫إل‬ ،‫صحيح‬‫كان‬ ‫اذا‬ ‫إل‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫الخصائص‬‫و‬ ‫الطرق‬ ‫اثة‬‫ر‬‫و‬ ‫البن‬ ‫للفئة‬ ‫يمكن‬ ‫ل‬ ‫ه‬ ( ‫عام‬ ‫لها‬ ‫الوصول‬ ‫مستوى‬public( ‫محمي‬ ‫او‬ )protected.) :‫منها‬ ‫مشتقة‬ ‫ابن‬ ‫وفئة‬ ‫اب‬ ‫فئة‬ ‫عن‬ ‫لإلعالن‬ ‫العام‬ ‫الشكل‬ class Super_Class_Name // ‫االب‬ ‫الفئة‬ { //Members and methods declarations. } class Sub_Class_name extends Super_Class_name //‫االبن‬ ‫الفئة‬ { //Members and methods declarations. } ‫ة‬‫ز‬‫المحجو‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫اب‬ ‫فئة‬ ‫عن‬ ‫العالن‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬class‫اسم‬ ‫تحت‬ Super_Class_Name‫المحجو‬ ‫الكلمة‬ ‫باستخدام‬ ‫ابن‬ ‫فئة‬ ‫عن‬ ‫العالن‬ ‫تم‬ ‫كما‬‫ة‬‫ز‬class‫تحت‬ ‫اسم‬Sub_Class_name‫ة‬‫ز‬‫المحجو‬ ‫بالكلمة‬ ‫متبوعة‬extends‫الب‬ ‫الفئة‬ ‫اسم‬ ‫كتابة‬ ‫ثم‬ .‫منها‬ ‫المشتقة‬
  • 17. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 16 ‫م‬‫ثال‬: class Vehicle { String color; int speed; int size; void attributes() { System.out.println("Color : " + color); System.out.println("Speed : " + speed); System.out.println("Size : " + size); } } class Car extends Vehicle { int CC; int gears; void attributescar() { System.out.println("Color of Car : " + color); System.out.println("Speed of Car : " + speed); System.out.println("CC of Car : " + CC); System.out.println("No of gears of Car : " + gears); } } public class Test { public static void main(String[] args) { Car Nissan = new Car(); // ‫االبن‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ Nissan.color = "Blue"; Nissan.speed = 200 ; Nissan.CC = 1000; Nissan.gears = 5; Nissan.attributescar(); Vehicle Hyundai = new Vehicle ();// ‫االب‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ Hyundai.color="red"; Hyundai.speed=220; Hyundai.attributes(); } } ‫الب‬ ‫الفئة‬ ‫البن‬ ‫الفئة‬ ‫الفئة‬‫ئيسية‬‫ر‬‫ال‬
  • 18. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 17 ‫الجافا‬ ‫لغة‬ ‫في‬ ‫اثة‬‫ر‬‫الو‬ ‫اع‬‫و‬‫أن‬Types of inheritance: ‫اثة‬‫ر‬‫الو‬ ‫في‬ ‫تتمثل‬ ‫اثة‬‫ر‬‫الو‬ ‫من‬ ‫اع‬‫و‬‫أن‬ ‫عدة‬ ‫الجافا‬ ‫لغة‬ ‫في‬ ‫توجد‬،‫الحادية‬،‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫باألمثلة‬ ‫شرحا‬ ‫نقدم‬ ‫يلي‬ ‫فيما‬ ‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬:‫اع‬‫و‬‫الن‬ ‫لهذه‬ ‫االحادية‬ ‫اثة‬‫ر‬‫الو‬Single Inheritance: ‫فئة‬ ‫اشتقاق‬ ‫فيها‬ ‫يتم‬ ‫حيث‬ ‫استخداما‬‫و‬ ‫سهولة‬ ‫ها‬‫اكثر‬‫و‬ ‫اثة‬‫ر‬‫الو‬ ‫اع‬‫و‬‫أن‬ ‫ابسط‬ ‫من‬ ‫الحادية‬ ‫اثة‬‫ر‬‫الو‬ ‫تعتبر‬ ‫الحادية‬ ‫اثة‬‫ر‬‫الو‬ ‫ة‬‫ر‬‫فك‬ ‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬ ‫أب‬ ‫فئة‬ ‫من‬ ‫احدة‬‫و‬ ‫ابن‬: ‫التالي‬ ‫المثال‬ ‫يوضح‬ ‫كما‬‫ال‬ ‫اثة‬‫ر‬‫الو‬ ‫تطبيق‬ ‫يقة‬‫ر‬‫ط‬‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫حادية‬: Class A // ‫اب‬ ‫فئة‬ { public void method_A() { System.out.println("Parint class method"); } } Class B extends A // ‫ابن‬ ‫فئة‬ { public void method_B() { System.out.println("Child class method"); }
  • 19. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 18 public static void main(String args[]) // ‫الرئيسية‬ ‫الدالة‬ { B obj = new B(); // ‫االبن‬ ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬ obj.method_A(); //‫االب‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬ obj.method_B(); //‫االبن‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬ } } ‫مالحظة‬:‫أنه‬ ‫نالحظ‬ ‫السابق‬ ‫المثال‬ ‫خالل‬ ‫من‬‫من‬ ‫وبالرغم‬‫أ‬" ‫الكائن‬ ‫ن‬obj‫تم‬ "‫اشتقاقه‬( ‫االبن‬ ‫الفئة‬ ‫من‬B)‫إ‬‫ال‬‫أ‬‫ننا‬ " ‫الدالة‬ ‫استدعاء‬ ‫من‬ ‫خالله‬ ‫من‬ ‫تمكنا‬method_A( ‫االب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ "A). " ‫اسم‬ ‫تحت‬ ‫أب‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫تم‬ ‫السابق‬ ‫المثال‬ ‫في‬A‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫دالة‬ ‫على‬ ‫تحتوي‬ " method_A " ‫اسم‬ ‫تحت‬ ‫ابن‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫تم‬ ‫كما‬B"‫اسم‬ ‫تحت‬ ‫احدة‬‫و‬ ‫دالة‬ ‫على‬ ‫تحتوي‬method_B، " ‫اسم‬ ‫تحت‬ ‫كائن‬ ‫اشتقاق‬ ‫فيها‬ ‫تم‬ ‫التي‬ ‫نامج‬‫ر‬‫الب‬ ‫في‬ ‫ئيسة‬‫ر‬‫ال‬ ‫الدالة‬ ‫إلى‬ ‫باإلضافة‬obj" ‫الفئة‬ ‫من‬ "B" ‫الدالة‬ ‫استدعاء‬ ‫خالله‬ ‫من‬ ‫تم‬ ‫الذي‬‫و‬method_A‫الدالة‬ ‫وكذلك‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ method_B‫فإن‬ ‫وبهذا‬ ،‫البن‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬( ‫البن‬ ‫الفئة‬ ‫بأن‬ ‫القول‬ ‫يمكن‬ ‫ه‬B‫اثة‬‫ر‬‫بو‬ ‫قامت‬ ) ( ‫الب‬ ‫الفئة‬A" ‫الب‬ ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫للدالة‬ ‫استدعائها‬ ‫امكانية‬ ‫خالل‬ ‫من‬ )A‫خالل‬ ‫من‬ " " ‫الكائن‬obj"" ‫البن‬ ‫الفئة‬ ‫من‬ ‫المشتق‬B‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫اثة‬‫ر‬‫الو‬ ‫مفهوم‬ ‫يتضح‬ ‫هنا‬ ‫ومن‬ ،" ‫البن‬ ‫الفئة‬ ‫من‬ ‫مشتق‬ ‫كائن‬ ‫ة‬‫ر‬‫قد‬ ‫خالل‬ ‫من‬‫أن‬ ‫اط‬‫ر‬‫اشت‬ ‫مع‬ ‫الب‬ ‫الفئة‬ ‫في‬ ‫موجودة‬ ‫دالة‬ ‫استدعاء‬ ‫من‬ ( ‫عام‬ ‫ع‬‫نو‬ ‫من‬ ‫للدالة‬ ‫الوصول‬ ‫مستوى‬ ‫يكون‬public( ‫محمي‬ ‫ع‬‫نو‬ ‫من‬ ‫او‬ )Protected.)
  • 20. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 19 ‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬Multilevel inheritance: ‫وج‬ ‫مع‬ ‫الحادية‬ ‫اثة‬‫ر‬‫الو‬‫و‬ ‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫بين‬ ‫كبير‬ ‫حد‬ ‫إلى‬ ‫تشابه‬ ‫هنالك‬ ‫يوجد‬‫اختالف‬ ‫ود‬ ‫ابن‬ ‫فئة‬ ‫اشتقاق‬ ‫امكانية‬ ‫في‬‫من‬ ‫ى‬‫اخر‬‫للفئة‬ ‫أب‬ ‫فئة‬ ‫األولى‬ ‫البن‬ ‫الفئة‬ ‫لتصبح‬ ‫األولى‬ ‫البن‬ ‫الفئة‬ ،‫الجديدة‬‫(فئة‬ ‫التعبير‬ ‫صح‬ ‫إن‬ ‫اثة‬‫ر‬‫الو‬ ‫لعملية‬ ‫المنطقي‬ ‫التسلسل‬ ‫ليصبح‬،‫جد‬‫فئة‬،‫أب‬)‫ابن‬ ‫وفئة‬ :‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫تمثيل‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬ ‫ا‬ ‫المثال‬‫و‬:‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫المستويات‬ ‫متعددة‬ ‫اثة‬‫ر‬‫الو‬ ‫تطبيق‬ ‫يقة‬‫ر‬‫ط‬ ‫يوضح‬ ‫لتالي‬
  • 21. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 21 Class X{ public void methodX() { System.out.println("Class X method"); } } Class Y extends X { public void methodY() { System.out.println("class Y method"); } } Class Z extends Y{ public void methodZ(){ System.out.println("class Z method"); } public static void main(String args[]) { Z obj = new Z(); obj.methodX(); //‫الجد‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬ obj.methodY(); //‫االب‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬ obj.methodZ(); //‫االبن‬ ‫الفئة‬ ‫دالة‬ ‫استدعاء‬ } }
  • 22. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 21 ‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬Hierarchical Inheritance: ‫يوضح‬ ‫التالي‬ ‫الشكل‬‫و‬ ‫احدة‬‫و‬ ‫أب‬ ‫فئة‬ ‫من‬ ‫ابن‬ ‫فئة‬ ‫من‬ ‫أكثر‬ ‫اشتقاق‬ ‫امكانية‬ ‫في‬ ‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬ ‫تتمثل‬ :‫الهرمية‬ ‫اثة‬‫ر‬‫الو‬ ‫ة‬‫ر‬‫فك‬ ‫الهرم‬ ‫الوراثة‬ ‫تطبيق‬ ‫طريقة‬ ‫يوضح‬ ‫التالي‬ ‫والمثال‬:‫الجافا‬ ‫لغة‬ ‫باستخدام‬ ‫ية‬
  • 23. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 22 Class A{ public void methodA() { System.out.println("method of Class A"); } } Class B extends A{ public void methodB() { System.out.println("method of Class B"); } } Class C extends A{ public void methodC() { System.out.println("method of Class C"); } } Class D extends A{ public void methodD() { System.out.println("method of Class D"); } } Class MyClass{ public static void main(String args[]) { B obj1 = new B(); C obj2 = new C(); D obj3 = new D(); obj1.methodA(); obj2.methodA(); obj3.methodA(); } } ‫الهجينة‬ ‫اثة‬‫ر‬‫الو‬‫و‬ ‫المتعددة‬ ‫ثة‬‫ر‬‫ا‬‫و‬‫ال‬ ‫مثل‬ ‫اثة‬‫ر‬‫الو‬ ‫من‬ ‫ى‬‫اخر‬ ‫اع‬‫و‬‫ان‬ ‫الموجهة‬ ‫البرمجة‬ ‫في‬ ‫توجد‬ : ‫مالحظة‬‫إ‬‫ل‬‫أ‬‫يمكن‬ ‫ل‬ ‫نه‬ ‫الجافا‬ ‫لغة‬ ‫في‬ ‫تطبيقها‬‫إ‬( ‫البيني‬ ‫الوسط‬ ‫آلية‬ ‫خالل‬ ‫من‬ ‫ل‬interface.‫لحقا‬ ‫حها‬‫شر‬ ‫سيتم‬ ‫التي‬ )
  • 24. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 23 ‫المفتاحية‬ ‫الكلمة‬super: " ‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫لل‬ "‫في‬ ‫الموجودة‬ ‫المشيدات‬‫و‬ ‫ال‬‫و‬‫الد‬‫و‬ )‫ات‬‫ر‬‫(المتغي‬ ‫للبيانات‬ ‫وصول‬ :‫التالي‬ ‫النحو‬ ‫على‬ ‫البن‬ ‫الفئة‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬ :‫االب‬ ‫الفئة‬ ‫في‬ ‫البيانات‬ ‫استدعاء‬ ‫المفتاحية‬ ‫الكلمة‬ ‫استخدام‬ ‫يمكن‬"super"‫الموجودة‬ )‫(الخصائص‬ ‫ات‬‫ر‬‫المتغي‬‫و‬ ‫البيانات‬ ‫إلى‬ ‫للوصول‬ ‫ال‬ ‫الفئة‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫في‬‫في‬ ‫اعها‬‫و‬‫ان‬‫و‬ ‫ات‬‫ر‬‫المتغي‬ ‫أسماء‬ ‫بين‬ ‫تشابه‬ ‫وجود‬ ‫عند‬ ‫خصوصا‬ ‫بن‬ ‫ذلك‬ ‫على‬ ‫وكمثال‬ ‫البن‬ ‫الفئة‬‫و‬ ‫الب‬ ‫الفئة‬ ‫من‬ ‫كل‬: class Human // ‫االب‬ ‫الفئة‬ { //‫االب‬ ‫الفئة‬ ‫متغيرات‬ String name="Ahmed"; int id=10; } public class Student extends Human // ‫االبن‬ ‫الفئة‬ { String name="Salem"; int id=520; void print() { // ‫المتغير‬ ‫طباعة‬‫ات‬‫االب‬ ‫الفئة‬ ‫في‬ ‫الموجود‬ System.out.println(super.name); System.out.println(super.id); } public static void main(String[] args) { Student obj=new Student(); // ‫الفئة‬ ‫من‬ ‫كائن‬ ‫اشتقاق‬‫االبن‬ obj.print(); // ‫الفئة‬ ‫في‬ ‫الموجودة‬ ‫الدالة‬ ‫استدعاء‬‫االبن‬ } } ‫البرنامج‬ ‫تنفيذ‬ ‫ناتج‬: Ahmed 10
  • 25. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 24 :‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫االب‬ ‫الفئة‬ ‫في‬ ‫ال‬‫و‬‫الد‬ ‫استدعاء‬ ‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫استدع‬ ‫في‬‫الدالة‬ ‫ة‬‫ر‬‫المكر‬ ‫ال‬‫و‬‫الد‬ ‫اء‬‫في‬ ‫الموجودة‬‫من‬ ‫الب‬ ‫الفئة‬ :‫التالي‬ ‫النحو‬ ‫على‬ ‫تكتب‬ ‫حيث‬ ‫ى‬‫اخر‬ ‫دالة‬ ‫أي‬ ‫داخل‬ ‫من‬ ‫او‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫داخل‬ super.method_name(); .‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫سطر‬ ‫اول‬ ‫في‬ ‫تكتب‬ ‫أن‬ ‫على‬ class Device { Device () { System.out.println("defult Parent Constructor"); } Device (int x) { System.out.println("Second Parent Constructor"); } void print() { System.out.println("Method in Parent class"); } } public class Computer extends Device { Computer() { super.print(); // ‫االب‬ ‫الفئة‬ ‫في‬ print‫الدالة‬ ‫استدعاء‬ } public static void main(String[] args) { Computer obj=new Computer(); } }
  • 26. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 25 ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫في‬ )‫المشيد‬ ‫(غير‬ ‫دالة‬ ‫استدعاء‬ ‫يوضح‬ ‫التالي‬ ‫المثال‬ : ‫مثال‬ ‫المفتاحية‬super‫الفئة‬ ‫في‬ ‫دالة‬ ‫خالل‬ ‫من‬.‫البن‬ class Animal{ public void move() { System.out.println("Animals can move"); } } class Dog extends Animal{ public void move() { super.move(); // invokes the super class method System.out.println("Dogs can walk and run"); } } public class TestDog{ public static void main(String args[]){ Animal b = new Dog(); // Animal reference but Dog object b.move(); //Runs the method in Dog class } }
  • 27. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 26 :‫االب‬ ‫الفئة‬ ‫في‬ ‫المشيد‬ ‫استدعاء‬ ‫المفتاحية‬ ‫الكلمة‬ ‫تستخدم‬super‫حيث‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫داخل‬ ‫من‬ ‫الب‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬ ‫في‬ :‫التالي‬ ‫النحو‬ ‫على‬ ‫تكتب‬ super(); ‫على‬‫أ‬‫في‬ ‫تكتب‬ ‫ن‬‫أ‬‫و‬ ‫البن‬ ‫الفئة‬ ‫مشيد‬ ‫من‬ ‫سطر‬ ‫ول‬‫إ‬: ‫التالية‬ ‫الخطأ‬ ‫رسالة‬ ‫ستظهر‬ ‫ل‬ “Constructor call must be the first statement in a constructor” ‫مثال‬: class Device { Device() { System.out.println("Parent Constructor"); } } public class Computer extends Device { Computer() { super(); // ‫االب‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬ System.out.println("child Constructor"); } public static void main(String[] args) { Computer obj=new Computer();// ‫االبن‬ ‫الفئة‬ ‫مشيد‬ ‫استدعاء‬ } } ‫المفتاحية‬ ‫الكلمة‬ ‫خالل‬ ‫من‬ ‫يمكننا‬ ‫كما‬super‫التي‬ ‫(المشيدات‬ ‫ية‬‫ر‬‫امت‬‫ر‬‫البا‬ ‫المشيدات‬ ‫استدعاء‬ ‫المفتاحية‬ ‫الكلمة‬ ‫امام‬ ‫القوسين‬ ‫بين‬ ‫المعامل‬ ‫قيمة‬ ‫فاق‬‫ر‬‫ا‬ ‫خالل‬ ‫من‬ )‫معامالت‬ ‫على‬ ‫تحتوي‬super :‫التالي‬ ‫النحو‬ ‫على‬ super(value);
  • 28. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 27 ‫مثال‬: class Computer { Computer () { System.out.println("defult Parent Constructor"); } Computer (int x) { System.out.println("Second Parent Constructor "+x); } } public class Laptop extends Computer { Laptop() { super(2); } public static void main(String[] args) { Laptop obj=new Laptop(); } } ‫البرنامج‬ ‫مخرجات‬ Second Parent Constructor 2
  • 29. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 28 )‫(االشكال‬ ‫االوجه‬ ‫تعدد‬Polymorphism: ‫ال‬ ‫تعددية‬ ‫او‬ ‫الوجه‬ ‫تعددية‬ ‫مصطلح‬ ‫يعتبر‬‫البرمجة‬ ‫في‬ ‫المستخدمة‬ ‫المصطلحات‬ ‫أهم‬ ‫من‬ ‫شكال‬ ( ‫بالهدف‬ ‫الموجهة‬OOP‫الذي‬ ‫الكائن‬ ‫على‬ ‫اعتمادا‬ ‫مختلفة‬ ‫بأفعال‬ ‫الدالة‬ ‫تقوم‬ ‫أن‬ ‫امكانية‬ ‫ويعني‬ ) ‫التحميل‬ ‫وهما‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫نوعين‬ ‫خالل‬ ‫من‬ ‫ذلك‬ ‫تمثيل‬ ‫ويمكن‬ ‫خالله‬ ‫من‬ ‫استدعائها‬ ‫يتم‬ ( ‫ال‬‫و‬‫للد‬ ‫ائد‬‫ز‬‫ال‬Method Overloading‫تجاه‬ ‫و‬ )( ‫الدالة‬ ‫ل‬Method Overriding.) ‫االشكال‬ ‫تعدد‬ ‫اع‬‫و‬‫أن‬Types of polymorphism: :‫وهما‬ ‫الجافا‬ ‫لغة‬ ‫في‬ ‫الشكال‬ ‫تعددية‬ ‫من‬ ‫نوعان‬ ‫هنالك‬ ‫يوجد‬ :‫الثابتة‬ ‫األوجه‬ ‫تعددية‬Compile time polymorphism (static polymorphism).: ‫للدال‬ ‫ائد‬‫ز‬‫ال‬ ‫التحميل‬ ‫في‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫ع‬‫النو‬ ‫هذا‬ ‫يتمثل‬‫ة‬Method Overloading‫الذي‬‫و‬ ‫في‬ ‫ال‬‫و‬‫الد‬ ‫هذه‬ ‫تختلف‬ ‫أن‬ ‫على‬ ‫الفئة‬ ‫نفس‬ ‫في‬ ‫السم‬ ‫بنفس‬ ‫دالة‬ ‫من‬ ‫أكثر‬ ‫يف‬‫ر‬‫تع‬ ‫إمكانية‬ ‫في‬ ‫يتمثل‬ ‫اع‬‫و‬‫أن‬ ‫تيب‬‫ر‬‫ت‬ ،‫الدالة‬ ‫معامالت‬ ‫اع‬‫و‬‫أن‬ ،‫الدالة‬ ‫معامالت‬ ‫(عدد‬ ‫في‬ ‫يتمثل‬ ‫الذي‬‫و‬ ‫الدالة‬ ‫بتوقيع‬ ‫يعرف‬ ‫ما‬ .)‫الدالة‬ ‫معامالت‬ ‫ة‬‫المتغير‬ ‫االوجه‬ ‫تعددية‬Runtime polymorhism( Dynamic polymorphism): ‫الدالة‬ ‫تجاهل‬ ‫في‬ ‫الوجه‬ ‫تعددية‬ ‫من‬ ‫ع‬‫النو‬ ‫هذا‬ ‫يتمثل‬Method Overriding‫مصطلح‬ ‫ويختلف‬ ، Method Overriding‫مصطلح‬ ‫عن‬Method Overloading‫الذي‬‫و‬ ‫مسبقا‬ ‫شرحه‬ ‫تم‬ ‫الذي‬ ‫التميز‬ ‫يتم‬ ‫السم‬ ‫بنفس‬ ‫دالة‬ ‫من‬ ‫اكثر‬ ‫على‬ ‫تحتوي‬ ‫فئة‬ ‫يف‬‫ر‬‫تع‬ ‫امكانية‬ ‫يعني‬‫ما‬ ‫خالل‬ ‫من‬ ‫بينها‬ ‫مصطلح‬ ‫يعني‬ ‫بينما‬ ‫الدالة‬ ‫بتوقيع‬ ‫يعرف‬Method Overriding‫أب‬ ‫فئة‬ ‫في‬ ‫دالة‬ ‫يف‬‫ر‬‫تع‬ ‫امكانية‬
  • 30. ‫البرمجة‬ ‫اساسيات‬‫بالهدف‬ ‫الموجهة‬‫باستخدام‬‫الجافا‬ ‫لغة‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــ‬‫ــــــــ‬ ‫المحاضر‬......... : ‫رقم‬ ‫ة‬: ‫المحاضر‬‫الدروقي‬ ‫سالم‬ ‫ــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــ‬ ‫ــــــــــــــــــــــــ‬‫ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــ‬‫ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ‬‫ـــــــــــــــــــ‬ Java Programming Language‫الدروقي‬ ‫سالم‬ : ‫المحاضر‬ 29 ‫الذي‬ ‫الكائن‬ ‫مرجعية‬ ‫خالل‬ ‫من‬ ‫بينها‬ ‫التمييز‬ ‫يتم‬ ‫بحيث‬ ‫السم‬ ‫بنفس‬ ‫منه‬ ‫مشتق‬ ‫ابن‬ ‫فئة‬ ‫في‬ ‫ى‬‫أخر‬‫و‬ .‫الدالة‬ ‫هذه‬ ‫يستدعي‬ ‫م‬:‫ثال‬ class Human{ public void eat() { System.out.println("Human is eating"); } } class Boy extends Human{ public void eat() { System.out.println("Boy is eating"); } public static void main( String args[]) { Boy obj = new Boy(); obj.eat(); } }