الدرس السادس :
تقنيات إعادة استخدام الصفوف
مقدمة :
احدى الميزات الهامة للبرمجة غرضية التوجه هي إعادة استخدام الصفوف المعرقة مسبقا.
أسلوب إعادة الاستخدام يحقق عن طريق التركيب و الوراثة
التركيب وضع عنوان غرض داخل تعريف الصف الجديد ..
بالنسبة للحقول الاولية نعرفها بشكل مباشر ما بالنسبة للحقول غير الأولية فإننا نضع عنوان الغرض
زه وصتعا 5 عدم تعور
() ع عدة قعم ع1
0و عتاعاعصم )١ وستعا 5 عد جه
عدماع
(3لة» + 213 ") صل استعم . يه لسع و57
بل + ٠ - 3" ) صل عستعم .عي لسع و57
رغ + ١5 - ٠١ )ست عستعم .عي لسع و5
لسع عو كع لاس تع عم - ع مع هتروع للست عط
كل صف جاهز أو نقوم بتعريفه يملك طريقة ( 1« 05© و هذه الطريقة تقوم بتحويل الغرض الذي يقوم باستدعائها
إلى سلسلة ...
يمكن إعادة تعريف هذه ١!
للصفوف التي نقوم بتعريفها
و هذه الطريقة تستدعى بشكل تلقائي عندما تكون هناك حاجة لتحويل الغرض إلى سلسلة
و يمكن أيضا استدعائها بشكل صريع
نلاحظ هنا أننا نحاول دمج سلسلة مع غرض و هنا يتم بشكل تلقائي استدعاء الطريقة () وذ« 5ع الخاصة بالغرض
و تتم عملية الدمج بنجاح
جافا تضمن أن جميع المتحولات التي تعرف .. و الخرج يوضح ذلك
كما ذكرنا سايقا ... طرق تهيئة الأغراض تتم بثلاث طرق :
,أن الغرض يد
بشكل دائم قبل استدعاء الباتي
- داخل الباتي
- قبل الاستخدام الفلي للغرض
الطرق الثلائة موضحة في المثل التلي :
+" () ده 5 ") مل استعم . عه سف عير
( 4ع عبااعصم )١ ومتعا 5 عد جو
:3.14 - لمع
زر ومع + ٠ - لوم »)مل استعم . عه لسع و57
الوراثة جزء مكمل للغة م/م ( و جميع لغات البرمجة )
عندما نقوم بصل وراثة بين صفين فذلك يعني " الصف الجديد يشب
الصف القديم "
لتحقيق الوراثة بين صفين نضع الكلمة المفتاحية عن«» »م» بعد اسم الصف الجديد و بعدها اسم الصف الأب و قبل قوس
تعريف الصف ..
عندما نقوم بذلك فإن جميع المتحولات الأعضاء و التوابع الأعضاء في الصف الأب تصبح متاحة للصف الابن
) (دوعة [] وستعا5) صتمم ققدم عتعمه عتلطيط
:#مطاعم د #وصقط //
ذه معد عط 2656 1/1
از () طبع 2 .ع3
الغرض الجزئي يكون مغلف داخل الغرض الذي قمنا بإنشاء: .
لذلك من الضروري أن يكون هذا الغرض ١
مهيا بشكل صحيح ..
الطريقة الوحيدة لعمل ذلك هي القيام بالتهيئة في الباني و ذلك باستدعاء باني الصف الأب
في 38/8 .. تدخل عطيات استدعاء باني الصف الأب داخل باني الصف الابن بشكل أوتوماتيكي ..
) 0)غعمه
٠ اعم ميع عصمة ا عط ") ل تاستعم . عه لسع علر5
ا( ل عم عباع عصمة وصعة ع0 ") لت استعم .يه مضع 7ر5
٠ ( ا ععم عباععصمة ممماعمه ١ ) ل استعم .يه لضع ولر5
و في حال كان الصف الابن لا يحتوي باني ..
باني الأب بشكل أوتوماتيكي
ان المترجم ينشاً له باني افتراضي و هذا الباني الافتراضي يقوم باستدعاء
من دون وسطاء )
بفرض أن الصف الأب لا يحتوي باني افتراضي أو أن الصف الأب يحتوي أكثر من باني و أحد هذه البواني افتراضي و
باثي بوسطاء ..
فإن المترجم بشكل افتراضي يقوم باستدعاء الباني الافتراضي للصف الأب في باني الابن
و لكن إذا آردنا استدعاء الباني ذو الوسطاء فإن الطريقة الوحيدة لعمل ذلك عن طريق الكلمة المفتاحية جم ورد و تمرر.
إذا لم نقم باستدعاء باني الأب و كان الأب لا يحتوي باني افتراضي فإن ذلك يدي إلى حصول خطأ في زمن الترجمة
) عسمع دعمله
) لذ عصد) عسمع
ل عم مبععصمة عسمة ") متعم . عياة مضع 7ر5
) عسمع مفصعات مسمعةعدمة فعمه
از ( "عم متعاعصمة ففعطك ") ل تاستعم . ده مضع و5
عادة و الأكثر شيوعا هو استخدام الوراثة و التركيب معا
إنشاء صف معقد باستخدام الوراثة و التركيب
) عغملط دعمله
( اعمج متعاعصمة ععة 21" ) ل استعم . يه لسع ولر5
) (ذ غصة) لتعصععلا
ل "عماعباععصمة تعض ان ١ ) لسعم .ايه ضع 2ر5
ز اعم ع متاعت عصمة العم" ) دل عاستعم . ده لسع عر
) التقضعنا ققضعاات #كخصضاا فعمه
) لذ تامعن
5 + 1) ع1 صععمصتط سعد - 1م
)ل استعم . يه لسع ع5
لاعف متضاقصم ومتاع 216265"
تتم مناقشة الكود و الشرح خطوة خطوا
علية هدم الأغراض.
لغة ميدق لا تملك مفهوم الهادم ( مثل ++0 ) و عملية الهدم يقوم بها ال «م 0م0011 981896 كما مر سابقا
و لكن أحيانا ربما نريد أن نقوم بعملية الهدم بشكل صريح .. إلا أننا لا نعلم متى و أين سيتم استدعاء ال عو وطعدو
<ه©©011» .. لذلك علينا أن نكتب طريقة تقوم بعملية الهدم بشكل صريح ..
كما سيمر لاحقا في مناقشة الأخطاء أثناء التنفيذ ( الاستثناءات ) يجب وضع استدعاء عملية الهدم في كتل 11 م1 .
) عصمطة دعمته
ل عم عتع عصمة فط ") مت عاستعم .يه لسع ولر5
لاع لومم تع
) (ة غخصت)عتمعته
) () متصمعته فته»
() متسمع 1ه عه ند
ب لاع ونع