SlideShare a Scribd company logo
‫بلغة‬‫البرمجة‬
‫الجافا‬
Java Programming Language
‫عداد‬‫ا‬
/
‫ا‬
.
‫السائح‬ ‫سكينة‬
‫بيع‬‫ر‬
2023
‫المعلومات‬‫تقنية‬‫كلية‬
‫محاضرة‬
3
:
classes&Object
‫الكائنات‬‫و‬‫التصانيف‬
Classes&Objects
‫العالم‬
‫من‬
‫حولنا‬
‫في‬
‫حقيقة‬
‫االمر‬
‫يتكون‬
‫من‬
‫مجموعة‬
‫من‬
‫الكائنات‬
objects
،
‫كل‬
‫كائن‬
‫له‬
‫خصائص‬
attributes
‫يتميز‬
،‫بها‬
‫و‬
‫سلوك‬
behavior
‫يسلكه‬
.
ً‫ا‬‫فمثل‬
‫االنسان‬
‫كائن‬
ً‫ي‬‫بشر‬
‫يتميز‬
‫بصفات‬
:
‫لون‬
‫عي‬
،‫ون‬
‫يدان‬
،
..
،
‫و‬
‫له‬
‫سلوك‬
‫يسلكه‬
‫مثل‬
:
‫االكل‬
،
‫الشرب‬
،
‫المشي‬
....
ً‫ا‬‫بناءا‬
‫على‬
‫هذا‬
‫المفهوم‬
‫جاءت‬
‫فكرة‬
‫البرمجة‬
‫الموجهة‬
‫نحو‬
‫الكائنات‬
‫و‬‫ا‬
‫البرمجة‬
،‫الشيئية‬
‫حي‬
‫ث‬
‫تعتبر‬
‫لغة‬
Java
‫من‬
‫اللغات‬
‫الكائنية‬
‫و‬
‫فيها‬
‫يتكون‬
‫نامج‬‫ر‬‫الب‬
‫من‬
‫مجموعة‬
‫من‬
objects
‫التي‬
‫تتفاعل‬
‫مع‬
‫بعضها‬
‫البعض‬
.
‫هذه‬
‫الكائنات‬
‫تم‬
‫تكوينها‬
ً‫ا‬‫وفقا‬
‫نماذج‬
‫او‬
‫قوالب‬
‫محددة‬
‫و‬
‫معرفة‬
ً‫ا‬‫مسبقا‬
‫في‬
‫نامج‬‫ر‬‫الب‬
‫تسمى‬
classes
(
‫التصانيف‬
‫او‬
‫الفصائل‬
‫و‬‫ا‬
‫الفائت‬
)
،
‫حيث‬
‫لكي‬
‫نكون‬
‫كائن‬
‫ما‬
‫و‬‫ا‬
‫ثر‬‫ك‬‫ا‬
‫البد‬
ً‫ا‬‫وال‬‫ا‬
ً‫ا‬
‫ن‬
‫نكون‬
‫تصنيف‬
class
.
‫ايا‬‫ز‬‫م‬
‫البرم‬
‫ج‬
‫ة‬
‫باستخدام‬
OOP

‫امكانية‬
‫صنع‬
‫ي‬‫ا‬
‫قالب‬
class
ً‫ا‬‫وفقا‬
‫للمعايير‬
‫و‬
‫المقاييس‬
‫المحددة‬
‫حسب‬
‫الحاجة‬
.

‫امكانية‬
‫استخدام‬
‫هذه‬
‫ال‬
classes
‫و‬
‫االستفادة‬
‫منها‬
‫في‬
‫تكوين‬
‫ي‬‫ا‬
‫عدد‬
‫من‬
‫الكائنات‬
‫دون‬
‫الحاجة‬
‫الى‬
‫معرفة‬
‫التفاصيل‬
‫عن‬
‫هذه‬
‫ال‬
classes
.

‫امكانية‬
‫استخدام‬
‫ي‬‫ا‬
‫تصنيف‬
class
‫موجود‬
ً‫ا‬‫مسبقا‬
‫و‬
‫امكانية‬
‫اضافة‬
‫بيانات‬
ً‫ى‬‫اخر‬
‫إليه‬
‫دون‬
‫الحاج‬
‫ة‬
‫الى‬
‫معرفة‬
‫تفاصيل‬
‫هذه‬
‫ال‬
class
(
‫اثة‬‫ر‬‫الو‬
inheritance
)
.

‫امكانية‬
‫تعدد‬
‫االشكال‬
(
polymorphism
)
،
‫بمعنى‬
‫انه‬
‫يمكن‬
‫ان‬
‫نجعل‬
‫نامج‬‫ر‬‫الب‬
‫توب‬‫المك‬
‫بصف‬
‫ة‬
‫عامة‬
general
‫يخضع‬
‫لتنفيذ‬
‫مهمة‬
‫خاصة‬
specific
.

‫امكانية‬
‫حماية‬
‫البيانات‬
‫و‬
‫تغليفها‬
‫داخل‬
‫كبسولة‬
encapsulation
‫حيث‬
‫غلف‬ُ‫ت‬
‫البيانات‬
‫داخل‬
class
‫و‬
‫ال‬
‫يمكن‬
‫الوصول‬
‫اليها‬
‫بدون‬
‫تخويل‬
authorization
.
‫التصانيف‬
classes
-
‫التصنيف‬
Class
:
‫هو‬
‫الجوهر‬
‫ساسي‬‫اال‬
‫في‬
‫لغة‬
،‫جافا‬
‫حيث‬
‫ن‬‫ا‬
‫نامج‬‫ر‬‫الب‬
‫ال‬
‫توب‬‫مك‬
‫بلغة‬
‫جافا‬
‫يجب‬
‫ن‬‫ا‬
‫يحتوي‬
‫على‬
‫قل‬‫اال‬
‫على‬
‫تصنيف‬
‫واحد‬
.
-
‫تعتبر‬
‫التصانيف‬
‫نوع‬
‫من‬
‫نوا‬‫ا‬
‫ع‬
،‫البيانات‬
‫لذلك‬
‫يمكن‬
‫تعريف‬
‫ات‬‫ر‬‫متغي‬
‫من‬
‫نوع‬
‫تصانيف‬
،
‫فالمت‬
‫غير‬
‫من‬
‫نوع‬
‫تصنيف‬
‫عبارة‬
‫عن‬
‫كائن‬
instanceof class(object)
.
-
‫يمكن‬
‫تعريف‬
‫التصنيف‬
‫في‬
‫لغة‬
‫جافا‬
‫باستخدام‬
‫الكلمة‬
‫ة‬‫ز‬‫المحجو‬
class
‫و‬
‫يتم‬
‫تعريف‬
‫مجموعة‬
‫من‬
‫ات‬‫ر‬‫المتغي‬
‫داخل‬
‫التصنيف‬
‫و‬
‫يضا‬‫ا‬
‫مجموعة‬
‫من‬
‫الدوال‬
methods
.
-
‫ليس‬
‫من‬
ً‫ي‬‫ر‬‫و‬‫الضر‬
‫تعريف‬
‫الدالة‬
main
‫من‬
‫ضمن‬
‫دوال‬
‫التصنيف‬
‫إال‬
‫إذا‬
‫ردنا‬‫ا‬
‫هذا‬
‫التصنيف‬
ً‫ا‬
‫ن‬
‫يكون‬
‫هو‬
‫بداية‬
‫تن‬
‫فيذ‬
‫نامج‬‫ر‬‫الب‬
.
-
‫يجب‬
‫ن‬‫ا‬
ً‫يبدا‬
‫اسم‬
‫التصنيف‬
‫بحرف‬
‫كبير‬
Capitalletter
.
-
‫اسم‬
‫ملف‬
‫نامج‬‫ر‬‫الب‬
ً‫ي‬‫المصدر‬
‫يجب‬
‫ن‬‫ا‬
‫يحمل‬
‫نفس‬
‫اسم‬
‫التصنيف‬
‫و‬
‫يكون‬
‫امتداده‬
(
.java
)
.
-
‫ي‬
‫حتوي‬
‫التصنيف‬
‫على‬
‫دالة‬
‫و‬‫ا‬
‫مجموعة‬
‫دوال‬
‫داخل‬
‫التصنيف‬
class
‫تحمل‬
‫نفس‬
‫اسم‬
‫التصنيف‬
‫تسمى‬
‫دوال‬
‫البناء‬
constructor
،
‫و‬
‫في‬
‫حالة‬
‫عدم‬
‫وجود‬
‫ي‬‫ا‬
‫دالة‬
‫بناء‬
‫داخل‬
،‫التصنيف‬
‫يقوم‬
‫المترجم‬
ً‫ا‬‫تلقائيا‬
‫ب‬
‫إ‬
‫نشاء‬
‫دال‬
‫ة‬
‫بناء‬
‫ال‬
‫تصنيف‬
‫في‬
‫زمن‬
‫التنفيذ‬
‫إلعطاء‬
‫قيم‬
‫ابتدائية‬
‫ات‬‫ر‬‫لمتغي‬
‫التصنيف‬
.
‫تابع‬
..
‫التصانيف‬
classes
ً‫يمكن‬
‫تعريفًال‬
class
‫علىًانها‬
:

‫وصفًلعددًمنًالكائناتًالمتشابهة‬
.

ً‫مجموعة‬
ً‫منًالبيانات‬
data(attributes)
ً‫وًالدوال‬
methods(behavior)
ً‫التيًتشتركًفيًصفة‬
‫معينة‬
ً،
ً‫ي‬‫ا‬
class
ً‫فيًلغة‬
Java
‫ئيين‬‫ز‬‫تتكونًمنًج‬
:

‫الخصائص‬
attributes
:
‫و‬
‫هي‬
‫البيانات‬
:
‫الثوابت‬
‫و‬
‫ات‬‫ر‬‫المتغي‬
‫التي‬
‫تخص‬
‫الكائن‬
object
.
‫و‬
‫سمى‬ُ‫ت‬
‫ات‬‫ر‬‫بمتغي‬
‫عضاء‬‫اال‬
membervariables
‫و‬‫ا‬
instancevariables
.

‫السلوك‬
behavior
:
‫و‬
‫هي‬
‫الوظيفة‬
‫او‬
‫المهمة‬
(function or method)
‫التي‬
‫يقوم‬
‫بها‬
‫الكائن‬
object
.
‫و‬
‫سمى‬ُ‫ت‬
‫بالدوال‬
‫عضاء‬‫اال‬
membermethods
.
ً‫تعريفًالتصنيف‬
class definition
‫نامجًيجبًانًنتبعًالشكلًالتالي‬‫ر‬‫لتعريفًتصنيفًفيًالب‬
:
‫أو‬
class Classname {
type instance-variable1;
type instance-variable2;
t ype methodname1(parameter-list) {
// body of method} }
‫الحقول‬
Fields

‫الحقول‬
:
‫هي‬
‫الثوابت‬
‫و‬
‫ات‬‫ر‬‫المتغي‬
‫التي‬
‫نحتاج‬
‫اليها‬
‫لوصف‬
‫خصائص‬
،‫الكائن‬
‫وت‬
‫تمثل‬
‫في‬
‫االنواع‬
‫التالية‬
:
.1
Instancevariable
‫و‬
‫هو‬
‫متغير‬
‫يتم‬
‫االعلن‬
‫عنه‬
‫داخل‬
‫التصنيف‬
class
‫بالشكل‬
‫التالي‬
:
‫الحقول‬
Fields
.2
Constant
ً‫وًهوًثابتًيتمًاالعلنًعنهًداخلًالتصنيف‬
class
‫بالشكلًالتالي‬
:
‫و‬
‫يمكن‬
‫تعريف‬
‫متغير‬
‫من‬
‫نوع‬
final
‫على‬
‫ان‬
‫يتم‬
‫اعطاءه‬
‫قيمة‬
‫ثابتة‬
‫من‬
‫قبل‬
‫دالة‬
‫البناء‬
constructor
‫و‬
‫ال‬
‫يمكن‬
‫ان‬
‫تتغير‬
‫قيمته‬
‫داخل‬
‫نامج‬‫ر‬‫الب‬
‫و‬
‫الشكل‬
‫العام‬
‫لها‬
‫هو‬
:
‫الحقول‬
Fields
.3
Classvariable
ً‫سمىًمتغيرًالتصنيف‬ُ‫وًي‬
(
‫اوًالمتغيرًالساكن‬
)
‫ًوًهوًمتغيرًيتمًاالعلنًعنهًداخلًال‬،
class
ً‫مسبوقًبالكلمة‬
ً‫ة‬‫ز‬‫المحجو‬
static
‫ًوًالشكلًالعامًلهًهو‬،
:
ً‫و‬
ً‫معنىًذلكًانًموقعًهذه‬
ً‫المتغير‬
‫داخلًموقعًذاكرةًال‬
class
‫ًوًكلًكائنًمكونًمنًهذهًال‬،
class
ً‫يمكنه‬
‫الوصولًإليه‬
.
‫مالحظة‬
:
ً‫يمكن‬
ً‫ا‬
ً‫نًيكونًالثابت‬
constant
ً‫منًنوع‬
final static
‫كماًفيًالشكلًالتالي‬
:
‫الكائنات‬
Objects
‫الكائن‬
‫عنصر‬
‫مثل‬ُ‫ي‬
‫استخدام‬
class
‫داخل‬
‫نامج‬‫ر‬‫الب‬
(
‫ي‬‫ا‬
‫متغير‬
‫من‬
‫نوع‬
‫تصنيف‬
)
‫و‬
‫خذ‬‫يا‬
‫نفس‬
‫الصفات‬
data
‫والسلوك‬
‫الموجودة‬
‫في‬
‫هذا‬
‫ال‬
class
،
‫بمعنى‬
‫نه‬‫ا‬
‫يستطيع‬
‫استخدام‬
‫البيانات‬
‫و‬
‫الدوال‬
‫الموجودة‬
‫داخل‬
‫ال‬
class
‫التي‬
‫ينتمي‬
‫إليها‬
.
‫و‬
‫لتكوين‬
‫كائن‬
‫داخل‬
،‫نامج‬‫ر‬‫الب‬
‫نتبع‬
‫الشكل‬
‫التالي‬
:
‫لت‬
‫كوين‬
‫كائن‬
‫ي‬
‫تم‬
‫تابة‬‫ك‬
‫اسم‬
‫التصنيف‬
‫ثم‬
‫المتغير‬
‫الذي‬
‫يمثل‬
‫الكائن‬
‫و‬
‫تستخدم‬
‫الكلمة‬
‫ال‬
‫ة‬‫ز‬‫محجو‬
new
‫لحجز‬
‫موقع‬
‫في‬
‫الذاكرة‬
‫لمتغير‬
‫الكائن‬
‫و‬
‫هو‬
‫مؤشر‬
‫يشير‬
‫لم‬
‫وقع‬
‫الكائن‬
‫في‬
‫الذاكرة‬
،
‫ما‬‫ا‬
‫االسم‬
‫الذي‬
‫يلي‬
‫الكلم‬
‫ة‬
‫ة‬‫ز‬‫المحجو‬
new
‫و‬
‫ال‬
‫قوسين‬
‫يمثل‬
‫دالة‬
‫بناء‬
‫للتصنيف‬
‫إلعطاء‬
‫قيم‬
‫ابتدائية‬
‫ات‬‫ر‬‫لمتغي‬
‫الكائن‬
.
‫خذ‬‫يا‬
‫الكائن‬
‫ة‬‫ر‬‫صو‬
‫من‬
‫التصنيف‬
(
‫ات‬‫ر‬‫متغي‬
‫ه‬
‫و‬
‫دوال‬
‫ه‬
)
‫و‬
‫يمكن‬
‫الوصول‬
‫ل‬
‫ات‬‫ر‬‫متغي‬
‫و‬
‫دوال‬
‫الكائن‬
‫عن‬
‫طريق‬
‫اس‬
‫م‬
‫الكائن‬
‫و‬
‫نقطة‬
‫ثم‬
‫اسم‬
‫المتغير‬
‫و‬‫ا‬
‫الدالة‬
‫اد‬‫ر‬‫الم‬
‫الوصول‬
‫اليها‬
obj_name.memeber
،
‫لذلك‬
‫قيم‬
‫ات‬‫ر‬‫متغي‬
‫كل‬
‫كائن‬
‫قد‬
‫تختلف‬
‫الكائن‬
‫خر‬‫اال‬
‫من‬
‫نفس‬
‫التصنيف‬
.
‫تكوين‬‫جملة‬‫تفسير‬
‫الكائن‬
‫تعني‬
‫جملة‬
‫تكوين‬
‫الكائن‬
ً‫ا‬
‫ن‬
‫المترجم‬
compiler
‫يستخدم‬
‫الكلمة‬
‫ة‬‫ز‬‫المحجو‬
new
‫ليقوم‬
‫بالتالي‬
:
‫تكوين‬
‫كائن‬
‫باالسم‬
‫المعطى‬
create object
،
‫حجز‬
‫موقع‬
‫في‬
‫الذاكرة‬
memory location
‫لهذا‬
‫الكائن‬
،
‫استدعاء‬
‫دالة‬
‫البناء‬
‫اذا‬
‫كانت‬
‫موجودة‬
‫في‬
‫نامج‬‫ر‬‫الب‬
‫و‬
‫تمرير‬
‫البيانات‬
‫اليها‬
‫و‬
‫تخزينها‬
‫في‬
‫موقع‬
‫ذاكرة‬
،‫الكائن‬
‫و‬
‫إال‬
‫فإنه‬
‫يقوم‬
‫بفرض‬
‫دالة‬
‫بناء‬
‫اضية‬‫ر‬‫افت‬
‫و‬
‫يرجع‬
‫القيمة‬
null
.
‫تستخدم‬
‫جملة‬
‫تكوين‬
‫الكائن‬
‫في‬
‫نامج‬‫ر‬‫الب‬
‫المتغير‬
‫المرجعي‬
‫إلرسال‬
‫رسائل‬
‫إلى‬
،‫كائن‬
‫هذه‬
‫الرسائل‬
‫تسمى‬
‫بال‬
methods
‫التي‬
‫تمكن‬
‫نامج‬‫ر‬‫الب‬
‫من‬
‫التفاعل‬
‫مع‬
،‫الكائن‬
‫و‬
‫تتضمن‬
‫الرسالة‬
‫المعاملت‬
‫ا‬
‫لتي‬
‫تتطلبها‬
‫ال‬
methods
‫داء‬‫ال‬
‫مهمتها‬
.
‫الكائنات‬
Objects
‫مالحظات‬
:
-
‫عتبرًالشكلًالسابقًجملةًتكوينًكائن‬ُ‫ي‬
.
-
ً‫يمكن‬
‫ان‬
ً‫الًتحتويًجملةًتكوينًكائنًعلىًمعاملت‬
argument
ً،
‫و‬
ً‫يًبيانات‬‫فيًهذهًالحالةًالًيتمًتمريرًا‬
‫الى‬
ً‫موقع‬
‫ذاكرةًالكائن‬
.
-
‫ثرًمنًكائن‬‫ك‬‫يمكنًتكوينًا‬
‫منًنفسًال‬
class
‫فيًنفسًالسطر‬
‫و‬
‫فصلًبينهاًبالفاصلةًكماًفي‬ُ‫ي‬
‫الشكلًالتالي‬
:
Class-name object-name1,object-name2,……,object-nameN;
ً‫ثمًيتمًتكوينًكلًكائنًعلى‬
‫حدة‬
‫كماًفيًالشكلًالتالي‬
:
‫المؤثر‬
this
‫ستخدم‬ُ‫ي‬
‫المؤثر‬
this
‫فيما‬
‫يلي‬
:
‫حل‬
‫مشكلة‬
‫االسماء‬
،‫المتشابهة‬
‫حيث‬
ً‫ن‬‫يقتر‬
‫المؤثر‬
this
‫مع‬
‫اسم‬
‫المتغير‬
‫العضو‬
membervariable
.
‫استدعاء‬
‫دالة‬
،‫بناء‬
‫حيث‬
‫يمكن‬
‫لدالة‬
‫بناء‬
‫ان‬
‫تستدعي‬
‫دالة‬
‫بناء‬
ً‫ى‬‫اخر‬
‫بشرط‬
‫ان‬
‫تكون‬
‫اول‬
‫ج‬
‫ملة‬
‫في‬
‫دالة‬
‫البناء‬
ً‫ى‬‫االخر‬
‫جملة‬
‫االستدعاء‬
.
‫و‬
‫يمكن‬
‫ان‬
‫تحتوي‬
‫جملة‬
‫االستدعاء‬
‫على‬
‫معاملت‬
arguments
‫كما‬
‫في‬
‫الشكل‬
‫التالي‬
:
This.(‫)معاملت‬;
classes andobjects

‫عند‬
‫تكوين‬
‫نامج‬‫ر‬‫ب‬
class
‫يتم‬
‫حجز‬
‫موقع‬
‫في‬
‫الذاكرة‬
‫لهذا‬
class
‫يحتوي‬
‫على‬
‫كل‬
‫الخصائص‬
‫و‬
‫دوال‬
‫البناء‬
‫و‬
‫الدوال‬
‫التي‬
‫تصف‬
‫خصائص‬
‫و‬
‫سلوك‬
‫الكائن‬
‫اد‬‫ر‬‫الم‬
‫تكوينه‬
‫من‬
‫هذه‬
class
.

‫ال‬
‫تحتوي‬
class
‫على‬
‫قيمة‬
‫ات‬‫ر‬‫للمتغي‬
‫إال‬
‫ات‬‫ر‬‫المتغي‬
‫من‬
‫نوع‬
static
‫فيتم‬
‫تخزينها‬
‫في‬
‫موقع‬
‫ذاكرة‬
class
.

‫عند‬
‫تكوين‬
‫كائن‬
‫من‬
‫نوع‬
class
،‫معين‬
‫فإن‬
‫اسم‬
‫الكائن‬
‫هو‬
‫متغير‬
‫مرجعي‬
reference variable
‫تحتوي‬
‫على‬
‫العنوان‬
‫الذي‬
‫يتم‬
‫عنده‬
‫تخزين‬
‫بيانات‬
‫الكائن‬
‫بحيث‬
‫ن‬‫ا‬
‫لكل‬
‫كائن‬
‫بيان‬
‫اته‬
‫الخاصة‬
‫به‬
.

‫عند‬
‫التصريح‬
‫بمتغير‬
‫من‬
‫نوع‬
static
‫فإن‬
‫الكائن‬
‫يحجز‬
‫موقع‬
‫لها‬
‫يحتوي‬
‫على‬
‫عنوان‬
‫هذه‬
‫المتغير‬
‫ال‬
static
‫الموجودة‬
‫في‬
‫موقع‬
‫ذاكرة‬
‫ال‬
class
‫ليشير‬
‫اليها‬
.

‫يمكن‬
‫ي‬‫ال‬
‫كائن‬
‫ان‬
‫يغير‬
‫في‬
‫قيمة‬
‫المتغير‬
‫من‬
‫نوع‬
static
‫عملي‬‫ين‬‫ر‬‫تم‬
-
‫صمم‬
class
‫لوصف‬
‫كل‬
‫من‬
‫الكائنات‬
‫البرمجية‬
‫التالية‬
:
‫موظف‬
‫سيارة‬
‫تاب‬‫ك‬
-
‫مثال‬
:
‫تب‬‫اك‬
‫نامج‬‫ر‬‫ب‬
‫يقوم‬
‫بإنشاء‬
‫تصنيف‬
‫صندوق‬
‫يحتوي‬
‫على‬
‫ثلث‬
،‫ات‬‫ر‬‫متغي‬
‫تمث‬
‫ل‬
،‫الطول‬
‫العرض‬
‫و‬
‫تفاع‬‫ر‬‫اال‬
‫و‬
‫دالة‬
‫تقوم‬
‫بحساب‬
‫حجم‬
،‫الصندوق‬
‫ثم‬
‫قم‬
‫بإنشاء‬
‫كائنان‬
‫من‬
‫نوع‬
‫ال‬
‫صندوق‬
‫و‬
‫احسب‬
‫حجم‬
‫كلهما‬
‫و‬
‫اطبع‬
‫الحجمان‬
.
‫التصانيف‬‫مخطط‬
UMLclassdiagram

‫ستخدم‬ُ‫ي‬
‫مخطط‬
‫التصانيف‬
‫في‬
‫وصف‬
‫خصائص‬
‫و‬
‫سلوك‬
‫الكائن‬
‫اد‬‫ر‬‫الم‬
‫تكوينه‬
.

‫تساعد‬
‫مخططات‬
UML
‫مصممي‬
‫نظمة‬‫اال‬
‫على‬
‫تحديد‬
‫نظام‬
‫بطريقة‬
‫موجزة‬
‫و‬
‫رسومية‬
‫و‬
‫مستقلة‬
‫عن‬
‫ل‬
‫غة‬
،‫البرمجة‬
‫قبل‬
‫ن‬‫ا‬
‫يقوم‬
‫المبرمجون‬
‫بتنفيذ‬
‫النظام‬
‫بلغة‬
‫برمجة‬
‫معينة‬
.

‫سنستخدم‬
‫ا‬‫ا‬‫غالب‬
‫الرسوم‬
‫التخطيطية‬
‫لفئة‬
UML
‫لتلخيص‬
‫سمات‬
‫التصيف‬
‫و‬
‫عملياته‬
.

‫في‬
UML
،
‫يتم‬
‫نمذجة‬
‫كل‬
‫تصنيف‬
‫في‬
‫مخطط‬
‫تصنيف‬
‫كمستطيل‬
‫بثلث‬
‫اء‬‫ز‬‫ج‬‫ا‬
.

‫القسم‬
‫العلوي‬
:
‫يحتوي‬
‫على‬
‫سم‬‫ا‬
‫التصنيف‬
Class
‫في‬
‫المنتصف‬
‫بخط‬
‫غامق‬
.

‫القسم‬
‫وسط‬‫اال‬
:
‫يحتوي‬
‫على‬
‫اسم‬
‫صفة‬
‫التصنيف‬
‫و‬
‫الذي‬
‫يتوافق‬
‫مع‬
‫متغير‬
‫الحالة‬
‫الذي‬
‫يحم‬
‫ل‬
‫نفس‬
‫االسم‬
‫في‬
‫جافا‬
.

‫القسم‬
‫السفلي‬
:
‫يحتوي‬
‫على‬
‫عمليات‬
‫التصنيف‬
(
‫السلوك‬
)
‫مثل‬
(
setName
-
getName
)
.
‫التصانيف‬‫مخطط‬
UMLclassdiagram
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬‫رسائل‬
ErrormessagesinJavanetBeans
‫يوجد‬
‫نوعان‬
‫من‬
‫االخطاء‬
‫عند‬
‫تابة‬‫ك‬
‫الكود‬
‫و‬
‫هما‬
:
‫اخطاء‬
‫لغوية‬
:
‫هي‬
‫االخطاء‬
‫التي‬
‫تظهر‬
‫عند‬
‫وجود‬
ً‫خطا‬
‫في‬
‫جملة‬
‫و‬‫ا‬
‫تعليمة‬
‫البرمجة‬
‫وفق‬
‫لغة‬
‫ال‬
،‫برمجة‬
‫و‬
‫عادة‬
‫ما‬
‫يظهر‬
‫خط‬
‫احمر‬
‫تحت‬
‫السطر‬
‫الذي‬
‫يحتوي‬
‫على‬
ً‫خطا‬
‫لغوي‬
‫كما‬
‫في‬
‫المثال‬
‫التالي‬
:

‫عند‬
‫تنفيذ‬
‫نامج‬‫ر‬‫الب‬
‫الذي‬
‫يحتوي‬
‫على‬
‫اخطاء‬
‫لغوية‬
‫تظهر‬
‫الرسالة‬
‫التالية‬
:

‫هذا‬
‫يعني‬
‫ان‬
‫نامجك‬‫ر‬‫ب‬
‫يحتوي‬
‫على‬
‫اخطاء‬
‫لغوية‬
‫و‬
‫يجب‬
‫تصحيحها‬
‫قبل‬
‫تنفيذ‬
‫نام‬‫ر‬‫الب‬
،‫ج‬
‫لذلك‬
‫يجب‬
‫التخلص‬
‫من‬
‫جميع‬
‫االخطاء‬
‫اللغوية‬
‫قبل‬
‫تنفيذ‬
‫نامج‬‫ر‬‫الب‬
‫تابع‬
..
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬ ‫رسائل‬

‫في‬
‫بعض‬
‫االحيان‬
‫يكون‬
‫نامج‬‫ر‬‫الب‬
‫صحيح‬
‫و‬
‫ال‬
‫يوجد‬
‫به‬
‫اي‬
ً‫خطا‬
‫لغوي‬
‫و‬
‫عند‬
‫تنفيذ‬
ً
‫ر‬‫الب‬
‫نامج‬
‫تظهر‬
‫رسالة‬
ً‫الخطا‬
‫التالية‬
:

‫في‬
‫هذه‬
،‫الحالة‬
‫نامج‬‫ر‬‫الب‬
‫صحيح‬
‫و‬
‫لكن‬
compiler
‫ال‬
‫يستطيع‬
‫الوصول‬
‫الى‬
main class
،
‫لذلك‬
‫نقوم‬
‫بالضغط‬
‫على‬
‫ايقونة‬
(
‫كوب‬
‫القهوة‬
)
‫بجانب‬
‫اسم‬
project
‫ثم‬
‫نضغط‬
‫على‬
ً‫ر‬‫الز‬
‫االيمن‬
‫رة‬‫للفا‬
‫او‬
ً‫ر‬‫الز‬
‫االي‬
‫من‬
‫للوحة‬
‫المفاتيح‬
‫و‬
‫نختار‬
properties
‫ثم‬
‫نختار‬
run
‫و‬
‫بعدها‬
‫نقوم‬
‫بمسح‬
‫اسم‬
‫الدالة‬
‫بما‬
‫فيه‬
‫النقطة‬
‫ك‬
‫ما‬
‫في‬
‫الفقرة‬
‫التالية‬
.
‫تابع‬
..
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬ ‫رسائل‬
‫تابع‬
..
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬ ‫رسائل‬

ً‫نمسحًاسمًالدالةًبماًفيهاًالنقطةًثمًنضغط‬
ok
‫تابع‬
..
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬ ‫رسائل‬
‫ًالسهمًثمًتظهرًالرسالةًالتالية‬‫ر‬‫نامجًمنًجديدًبالضغطًعلىًز‬‫ر‬‫نقومًبتنفيذًالب‬
:
ً‫نضغط‬
ok
‫نامجًبنجاح‬‫ر‬‫فيتمًتنفيذًالب‬
‫تابع‬
..
‫الجافا‬‫بيئة‬‫في‬‫الخطا‬ ‫رسائل‬
‫تمرينًعملي‬
‫مثال‬
:
‫تب‬‫اك‬
‫نامج‬‫ر‬‫ب‬
‫بلغة‬
‫جافا‬
‫يطبع‬
‫بيانات‬
‫طالب‬
‫اوال‬
:
‫التحليل‬
‫تحديد‬
output
:
‫مطلوب‬
‫طباعة‬
‫بيانات‬
،‫طالب‬
‫و‬
‫هي‬
:
‫االسم‬
،‫االول‬
‫االسم‬
،‫االخير‬
‫الرقم‬
،‫اسي‬‫ر‬‫الد‬
‫الف‬
،‫صل‬
‫التخصص‬
‫تحديد‬
input
:
‫لطباعة‬
‫بيانات‬
،‫طالب‬
‫البد‬
‫من‬
‫الحصول‬
‫عليها‬
‫عن‬
‫طريق‬
‫االدخال‬
‫من‬
‫لوحة‬
‫المفاتي‬
‫ح‬
‫او‬
‫تمرير‬
‫بيانات‬
‫الطالب‬
‫اثناء‬
‫تكوين‬
‫الكائن‬
(
‫دالة‬
‫بناء‬
)
.
‫ثانيا‬
:
‫المعالجة‬
(
‫التصميم‬
)
:
-
‫عملية‬
‫اءة‬‫ر‬‫ق‬
‫من‬
‫لوحة‬
‫المفاتيح‬
‫باستخدام‬
Scanner
-
‫عملية‬
‫طباعة‬
‫فقط‬
‫باستخدام‬
‫جملة‬
‫الطباعة‬
System.out.printf
-
‫تحديد‬
‫نوعية‬
‫البيانات‬
(
int, string, double,……...
)
:
‫لدينا‬
‫متغير‬
‫و‬
‫هو‬
‫طالب‬
‫و‬
‫يتصف‬
‫بالصفات‬
‫التالي‬
‫ة‬
:
‫االسم‬
‫االول‬
،
‫االسم‬
‫االخير‬
‫هما‬
‫من‬
‫نوع‬
String
‫الرقم‬
‫اسي‬‫ر‬‫الد‬
‫من‬
‫نوع‬
int
‫التخصص‬
‫من‬
‫نوع‬
String
‫الفصل‬
‫الحالي‬
‫من‬
‫نوع‬
int
-
‫تصميم‬
class
:
‫يحتوي‬
class
‫على‬
‫مجموعة‬
‫من‬
‫الخصائص‬
‫التي‬
‫تصف‬
‫الكائن‬
(
‫بيانات‬
‫الكائن‬
)
‫و‬
‫الدوال‬
‫ا‬
‫ل‬
Methods
‫التي‬
‫تتعلق‬
‫بالكائن‬
(
‫دالة‬
‫طباعة‬
‫بياناته‬
)
ً‫تابع‬
..
‫مثال‬
:
‫نامجًبلغةًجافاًيطبعًبياناتًطالب‬‫ر‬‫تبًب‬‫اك‬
-
ً‫تحديدًالكائن‬
(
ً‫عددًالكائناتًاللزمًتكوينهاًمن‬
class
)
-
‫تحديدًلغةًالبرمجة‬
:
ً‫لغةًجافا‬
‫و‬
‫متطلباتها‬
:
ً‫بيئةًبرمجة‬
netBeans
-
ً‫تبات‬‫تحديدًالمك‬
‫و‬
ً‫الدوال‬
‫و‬
‫التعليماتًالمناسبة‬
-
‫تابةًالكودًبلغةًالجافا‬‫ك‬
-
ً‫تنفيذًالكودًعلىًبيئةًالتشغيل‬
netBeans
‫تحديد‬
class &object

‫ال‬
‫توجد‬
‫طريقة‬
‫محددة‬
‫لتحديد‬
object
،
‫لكن‬
‫يمكن‬
‫استنتاج‬
‫الكائن‬
‫من‬
‫خلل‬
‫تحديد‬
‫االسماء‬
‫ة‬‫ر‬‫المذكو‬
‫في‬
‫نص‬
‫السؤال‬
‫البرمجي‬
.

‫يتم‬
‫استنتاج‬
‫بيانات‬
‫الكائن‬
‫من‬
‫خلل‬
‫الخصائص‬
‫البرمجية‬
(
‫التي‬
‫تقبل‬
‫التحوي‬
‫ل‬
‫من‬
‫بيانات‬
‫واقعية‬
‫الى‬
‫بيانات‬
‫رقمية‬
‫برمجية‬
)
‫و‬
‫حسب‬
‫المطلوب‬
‫في‬
‫نامج‬‫ر‬‫الب‬
(
output
)

‫يتم‬
‫تحديد‬
‫الدوال‬
(
‫سلوك‬
‫الكائن‬
‫البرمجي‬
)
‫حسب‬
‫نوع‬
‫المهام‬
‫المطلوبة‬
‫للحصول‬
‫ع‬
‫لى‬
output
،
‫و‬
‫تقوم‬
‫هذه‬
‫الدوال‬
‫بمعالجة‬
‫بيانات‬
‫الكائن‬
‫من‬
‫اجل‬
‫الحصول‬
‫على‬
output
‫المطلوب‬

‫يمكن‬
‫ان‬
‫ال‬
‫تحتوي‬
class
‫على‬
‫دوال‬
‫حسب‬
‫المطلوب‬
‫او‬
‫حسب‬
‫طريقة‬
‫الحل‬
‫المستخدمة‬
‫مثلة‬‫ا‬
class &object
‫مثلة‬‫ا‬
class &object
‫مثلة‬‫ا‬
class &object
‫مثلة‬‫ا‬
class &object
‫عملي‬‫ين‬‫ر‬‫تم‬
‫نامجًبلغةًجافاًيطبعًبيانات‬‫ر‬‫تبًب‬‫اك‬
ً‫كلًمنًالكائناتًالبرمجيةًالسابقة‬
(
ً
‫ر‬‫ًفيًب‬ ٌ
‫كل‬
‫نامجًمستقل‬
)
ً‫موضحا‬
ً‫نوعًالكائنًوًخصائصهًوًعملياته‬
(
‫الدوال‬
.)
java programming language- lecture3.pptx

More Related Content

PDF
Java oop by_salem_adrugi
Salem Adrugi
 
PDF
Object Oriented Programming
Omar Albelbaisy
 
PDF
Algorithms and Data Structure 2020
Joud Khattab
 
PPTX
GS301 2023-java programming language lecture 1 _ .pptx
fatmaolowa
 
PDF
المختصر السريع فى البرمجة غرضية التوجية فى Php
Prmigo
 
PDF
موائمة الانسان مع الكمبيوتر pdf
ssuser893014
 
PDF
جافا سكريبت
osman do
 
PPTX
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
SultanAlAnazi42
 
Java oop by_salem_adrugi
Salem Adrugi
 
Object Oriented Programming
Omar Albelbaisy
 
Algorithms and Data Structure 2020
Joud Khattab
 
GS301 2023-java programming language lecture 1 _ .pptx
fatmaolowa
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
Prmigo
 
موائمة الانسان مع الكمبيوتر pdf
ssuser893014
 
جافا سكريبت
osman do
 
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
SultanAlAnazi42
 

Similar to java programming language- lecture3.pptx (20)

PPTX
Java_Programming_language in Yemen lec2.pptx
akrmalslami88
 
PDF
Software Engineering 2020
Joud Khattab
 
PDF
سي بالعربي.pdf
ssuser536c36
 
PPT
lec2visual basic2010visual basic2010.ppt
redagerges2006
 
PPSX
Lec 01 fundamentals concepts of java
Muntaser Jadallah
 
PDF
الدرس 2.pdf
Mohamed Mostafa
 
PPT
lec3visualbasic2010lec3visualbasic2010.ppt
redagerges2006
 
PPTX
ARRAYS
jdbc371632
 
PDF
01 Introduction in C++
Bint EL-maghrabi
 
PPT
Enter to jess مدخل الى قواقع جيس
Hasan Edrees
 
PPTX
الكائنات التعليمية
Dalal Alotibi
 
PPSX
Lec 02 var , const , opeaters , input , output ,comments
Muntaser Jadallah
 
PDF
Noor-Book.com البرمجjjjة بلغة بايثون.pdf
HamidKhemili
 
PPS
NetBeans Tut CH1
Omar Mohammed
 
PDF
تعلم برمجة.pdf
AhmedAboelkassem2
 
PPTX
java programming language- lecture9 (1).pptx
fatmaolowa
 
PDF
Software Engineering 2018
Joud Khattab
 
PDF
لغات البرمجة مع شرح مختصر لكل لغة ودورها في عالم البرمجة.pdf
EL MAHJOUB TAMAKAST
 
PDF
Software Engineering Basic lectures .pdf
ssuser09f614
 
PDF
SoftwareEngineering Basic Topics. .pdf
ssuser09f614
 
Java_Programming_language in Yemen lec2.pptx
akrmalslami88
 
Software Engineering 2020
Joud Khattab
 
سي بالعربي.pdf
ssuser536c36
 
lec2visual basic2010visual basic2010.ppt
redagerges2006
 
Lec 01 fundamentals concepts of java
Muntaser Jadallah
 
الدرس 2.pdf
Mohamed Mostafa
 
lec3visualbasic2010lec3visualbasic2010.ppt
redagerges2006
 
ARRAYS
jdbc371632
 
01 Introduction in C++
Bint EL-maghrabi
 
Enter to jess مدخل الى قواقع جيس
Hasan Edrees
 
الكائنات التعليمية
Dalal Alotibi
 
Lec 02 var , const , opeaters , input , output ,comments
Muntaser Jadallah
 
Noor-Book.com البرمجjjjة بلغة بايثون.pdf
HamidKhemili
 
NetBeans Tut CH1
Omar Mohammed
 
تعلم برمجة.pdf
AhmedAboelkassem2
 
java programming language- lecture9 (1).pptx
fatmaolowa
 
Software Engineering 2018
Joud Khattab
 
لغات البرمجة مع شرح مختصر لكل لغة ودورها في عالم البرمجة.pdf
EL MAHJOUB TAMAKAST
 
Software Engineering Basic lectures .pdf
ssuser09f614
 
SoftwareEngineering Basic Topics. .pdf
ssuser09f614
 
Ad

More from fatmaolowa (8)

PPTX
Algorithms_Design_powerPoint_slide9.pptx
fatmaolowa
 
PPTX
Algorithms_Design_powerPoint_slides.pptx
fatmaolowa
 
PPTX
data structure using c++ programmingppt
fatmaolowa
 
PPTX
java programming language- lecture8 (1).pptx
fatmaolowa
 
PDF
data structure using c++ language- Lecture6.pdf
fatmaolowa
 
PDF
java programming language - Lecture7.pdf
fatmaolowa
 
PDF
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
fatmaolowa
 
PPTX
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
fatmaolowa
 
Algorithms_Design_powerPoint_slide9.pptx
fatmaolowa
 
Algorithms_Design_powerPoint_slides.pptx
fatmaolowa
 
data structure using c++ programmingppt
fatmaolowa
 
java programming language- lecture8 (1).pptx
fatmaolowa
 
data structure using c++ language- Lecture6.pdf
fatmaolowa
 
java programming language - Lecture7.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - Lecture4.pdf
fatmaolowa
 
JAVA LANGUAGE PROGRAMMING - lecture 2 .pptx
fatmaolowa
 
Ad

Recently uploaded (11)

DOCX
أثر السجود و احْفُوا الشَّوَارِبَ وَاعْفُوا اللِّحَىة
dhiwanululumbanyuwan
 
PPTX
زنننننننوهىن ةعلااسباب الثورة المهدية.pptx
meltayeb2002
 
PPTX
التقويم بانواعه.pptxالتقويم القبلي ووالتكويني والنهائي
anwaarabusafa
 
PPTX
الدولة_المهدية_في_عهد_الخليفة_عبد_الله.pptx
meltayeb2002
 
PDF
Lecture (4).pdf\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
aimanabdalbasit100
 
PPTX
شرح الاشكال الهندسية Geometry shapes.pptx
Ahmed Shahin
 
PPTX
Audiovisual Systems engineering LECTURE4- 5 .pptx
menanezar3
 
PPTX
توثيق المصادر والمراجع العلمية في البحوث pptx
ssuser14c7ab2
 
PDF
خطة دورة السلامة والصحة المهنية
مركز نخبة العلم للتدريب
 
PDF
GROUP 5. MAHARAH AT-TA’ZIZ. BAMB2102R.PI3
khalisa26
 
PDF
المجموعة الأولى _ البحوث المقبولة _ المؤتمر الدولي الحادي عشر حول القضايا الر...
The Annual International Conference on Languages, Linguistics, Translation and Literature
 
أثر السجود و احْفُوا الشَّوَارِبَ وَاعْفُوا اللِّحَىة
dhiwanululumbanyuwan
 
زنننننننوهىن ةعلااسباب الثورة المهدية.pptx
meltayeb2002
 
التقويم بانواعه.pptxالتقويم القبلي ووالتكويني والنهائي
anwaarabusafa
 
الدولة_المهدية_في_عهد_الخليفة_عبد_الله.pptx
meltayeb2002
 
Lecture (4).pdf\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
aimanabdalbasit100
 
شرح الاشكال الهندسية Geometry shapes.pptx
Ahmed Shahin
 
Audiovisual Systems engineering LECTURE4- 5 .pptx
menanezar3
 
توثيق المصادر والمراجع العلمية في البحوث pptx
ssuser14c7ab2
 
خطة دورة السلامة والصحة المهنية
مركز نخبة العلم للتدريب
 
GROUP 5. MAHARAH AT-TA’ZIZ. BAMB2102R.PI3
khalisa26
 
المجموعة الأولى _ البحوث المقبولة _ المؤتمر الدولي الحادي عشر حول القضايا الر...
The Annual International Conference on Languages, Linguistics, Translation and Literature
 

java programming language- lecture3.pptx