إن برتامج »»»ز عبارة عن إنشاء مجموعة أغراض و استدعاء طرق مرتبطة بهذ الأغراض
لصف هو توصيف لنوع معين من الأغراض . يمكن تعريف صفوف و استخدا مها كما يمكن استخدام الصفوف المعرقة
بشكل مسبق في مكتبات وبردز
كما مر سابقا .. يتم إنشاء غرض باستخدام الكلمة المفتاحية يعم
قبل استخدام غرض ما يجب أن نقوم بتهيئته .. و تهيئة الغرض تتم باستخدام التابع الباني الذي يجب أن يكون معرف ضمن
اسم التايع الباتي موافق لاسم الصف و السبب في ذلك يعود لأمرين
- إذا لم يكن التايع الباني بنفس اسم الصف فربما يصيح الاسم متعارض مع اسم تابع آخر موجود داخل الصف
- و لأن عملية استدعاء التايع الباني تتم عن طريق المترجم لذا يجب أن يعرف ما اسم التابع الباني في كل صف
() 0م22 وعد
و كأي تابع عادي .. التابع الباني يمكن أن يأخذ وسطاء لتحديد كيف سنبني الغرض
) علاعمة دعمك
(3) 2لهم2 سعد
و لكن في المثال السابق تكون الطريقة الوحيدة لبناء الغرض هو بواسطة اتايع الباني بوسيط واحد
حسب احتياجاتنا ..
مثلا عندما نقول " اغسل القميص " و " اغسل السيارة '' نلاحظ أنه فعل الغسل تم على القميص و السيارة
في جافا يمكن تحميل التابع الباني بشكل زائد حيث يكون لدينا أكثر من تابع باني كلها تملك نفس الاسم ( اسم الصف ) و
لكن كل منها يقوم بتهيئة الفرض بأسلوب مختلف عن الآخر
كما يمكن تحميل أي من التوابع الأعضاء بشكل
و يكون التحميل الزائد لتايع ما هو تابع جديد يحمل نفس اسم التايع القديم إلا أنه يختلف بعدد البارمترات و انماطها
و بالتالي نميز بين تابعين لهما نفس الاسم عن طريق قائمة البارمترات ..
لا يمكن التمييز عن طريق القيمة المعادة
لو كان لدينا التابعين السابقين .. لهما نفس البارمترات و لكن يختلفان بالقيمة المعادة .. هنا لن يستطيع المترجم أن يميز
بين التابعين في حال قمنا باستدعاء أي منهما
و لكن إذا قمنا بالاستدعاء التالي . () *-ه. ع« ... في هذه الحالة سيعلم المترجم أي نسخة سيقوم بد
و لكن إذا قمنا بالاستدعاء التالي () © .... هنا لن يستطيع المترجم التمييز ..
لهذه الحالات لا يمكن التمييز بين تابعين بالقيمة المعادة فقط ... و يؤدي القيام بثلك إلى ظهور خطأ في زمن
غطوتغط + ١ عد 226" ) عور
تلمع ععوع ١ + عطوتغط +
(2<66)3 سعد 166
( الممطاع 176102464 ") مصاع
تتم قراءة الكود و ملاحظة أين تم التحميل الزائد للتوابع
الباني الافتراضي (الباني بدون وسطاء ) :
هو باني لا يأخذ بارمترات و يستخدم لبناء غرض خام .. لا يحمل أي قيمة ... أي بناء فقط لمجرد البناء
و إذا قمنا ببناء صف من دون أي باني فإن المترجم سيقوم بإنشاء باني افتراضي بشكل أوتوماتيكي
غصة
7 ()33<4 سعد - عد وده
نلاحظ أنه عندما عرفنا غرض من نوع 8138 فإن المترجم قام باستدعاء الباني الافتراضي الغير موجود بشكل صريح
)نه 6لطتمة) طعيط
السطر التالي ():51:ه8 »»»: عندها يظهر لدينا خطأ و ذلك لأن المترجم لن يجد باني بدون وسطاء
الكلمة المفتاحية و تطع :
لنفرض أننا داخل طريقة من طرق صف ما و نريد عنوان الغرض الحالي ( الذي قام باستدعاء الطريقة ) و لكن بما أنه لا
نعلم اسم الغرض الحالي فإن المترجم سيمرره للطريقة بشكل مخفي و ذلك بواسطة الكلمة المفتاحيةد تدع
الكلمة المفتاحية « تمزع ( تستخدم داخل الطرائق ) تعبر عن عنوان الغرض الذي قام باستدعاء الطريقة و تستخدم تماما
كأي غرض
) ممعا ففمفكه علطم
ربق
بما أن الطريقة () ©«»«»<:1 تعيد عنوان الغرض الحالي لذلك يمكن اجراء عمليات استدعاء الطريقة
() دعوم 107 بشكل متتالي .
استدعاء البواني داخل البواني :
عندما يكون لدينا أكثر من باني ربما نقوم باستدعاء باني داخل باتي و ذلك تجنبا لتكرار الكود و يتم ذلك باستخدام الكلمة
المفتاحية يراع
معنى كلمة قبع هنا
لا يمكن استدعاء # باع مع بارمترات أكثر من مرة في الباني الواحد
كما لا يمكن استدعاء 5 فدا» مع بارمترات في تابع غير باتي
و استخدام آخر ل 5 فدا للتمييز بين بارمتر طريقة و حقل صف و ذلك عند تطابق الأسماء حيث للوصول لحقل صف نكتب
بد غصة
)ست استعم . يه لسع ع5
() سمل
9 (لقوعة فم) عماء عدم علموععة "
) ()مستعم فقول
!سما دعصم -صمد عمتعصة ولا // [(13)ختطء !//
() 21067 وعد اعد 8ر10
في حال قمنا بتعريف متحول محلي داخل تابع و قمنا باستخدامه من دون إعطاءه قيمة بدائية فإن المترجم يعطينا خطأ في
مثال :
أما بلنسبة لأعضاء صف ما ..
في حال كان الحقل من نوع أولي ( 1خ ته ةعم ) و لم
الافتراضية و إذا كان من نوع غرض و لم نقم بإعطاءه قيمة بدا
المترجم بإعطائه القيمة الاب
يمكن إعطاء قيم لأعضاء صف بعدة طرق ..
ة لمتحول عضو في مكان تعريفه ( سواء كان أولي أو غرض )
ر) لمع خطة سعد - م عام زطه
كما يمكن إعطاء قيمة لمتحول عضو عن طريق تايع سواء كان مع بارمترات أو بدون بارمترات
) خخصته دعمته
في حال كان التابع مع بارمترات و كان أحد البارمترات هو غرض من صف آخر فيجب أن نضمن أن هذا الفرض مهيا ..
التعريف التالي صحيح :
بينما التعريف التالي خاطئ :
التهيئة باستخدام البواني.
عادة تستخدم البوائي و لكن قبل الدخول لاستدعاء الباني تكون القيم الابتدا
للمتحولات الأعضاء هي
:7 - 4 ) ()ع«ععصدم
تكون القيمة البدائية ل 1 أولا 0 و بعدها تصبح 7
و نفس الشي بالنسبة لباقي أنواع المتحولات و الأغراص ..
(«عطاعمم عستا وة2
عم اعنعاعصمة لمعه //0ر(د) ومع د - 1 ود2
3 معتل تتستعة // : (33) و22 عد - 3
0( )ع ١ ) ل تاستعم . عه لسع ع5
بعد عم جء وعد
عصمة عد لصم كاعتصاعصم عقطع شمط5 // باقعا
إعطاء القيم البدا:
يتم إعطاء القيم البدائية للمتحولات الأعضاء الستاتيكية تماما مثل المتحولات الأعضاء غير الستاتيكية .. إما في مكان
) تسم فعمه
) (ععططاعمم عصتاء قد«
(3) تمع سعد - 3ط 1م20
١) ()ةعممطوده