شروحات متفرقة

الكلمة المحجوزة static في لغة البرمجة سي شارب

static

تستخدم الكلمة المحجوزة static لجعل ( data members , methods ) يمكن الوصول إليها دون الحاجة إلى انشاء object اي يمكننا الوصول إلي اي ( data members , methods ) معرفة على انها static  من خلال اسم class واي شي معرف على انه static فهو مشترك بين جميع objects اي اذا قمنا بتغيير اي قيمة لـ data member مثلاً تتغير قيمته عند الجميع .تكتب كلمة static بعد او قبل Modifiers مباشرة .

static_code

 

الشرح

 السطر 6 : قمنا بإنشاء متغير من نوع static واضفنا له public وذلك لامكانية الوصول اليها في Main إذا ان المتغير معرف في كلاس غير الكلاس الذي يحتوي على Main ولذلك يجب اضافة public للوصول إليه مباشرة بدون استخدام property methods .

السطر 13 : يمكن كتابة اسم المتغير مباشرة بما انه موجود داخل الكلاس الذي عّرف فيه او من خلال اسم الكلاس ثم (.) ثم اسم المتغير وكلاهما صحيح ويؤدي إلى نفس النتيجة .

السطر 21 : قمنا بإنشاء object وذلك للوصول الى output2(),output1()  والتي تقوم على تغيير قيمة المتغير (name) وطباعته .

السطر 22 : قمنا بإستدعاء ميثود output1() والتي تقوم على تغيير قيمة (name ) إلى (Mohmmed) .

السطر 23 : قمنا بطباعة المتغير (name) والذي يحتوي على قيمة (Mohmmed) ونلاحظ اننا قمنا باستدعاء المتغير عن طريق اسم الكلاس

السطر 24 : قمنا بتغيير قيمة (name) إلى ( Ahmed) مما يعني ان قيمة المتغير (name) اصبحت (Ahmed) .

السطر 25 : قمنا باستدعاء الميثود (output2) والموجودة داخل الكلاس (employee) وتعمل هذه الوظيفة على طباعة قيمة المتغير (name) ومما لا شك فيه انه سيطبع اخر قيمة والتي هي (Ahmed)

ملاحظة : عند تعريف ميثود من نوع static يمنع استخدام اي (data member) داخلها اذا لم تكن  (data member) ايضاً static .

 

2_static_code

لاحظ في البرنامج السابق سيظهر لك خطأ على اسم المتغير (name) – سطر (6) – وذلك لانك قمت باستخدام متغير غير معرف على انه static داخل (method) معرفة على انها static .

3_static_code

 

لاحظ في البرنامج السابق لن يظهر لك اي خطأ كما في البرنامج السابق  وذلك لانك قمت باستخدام متغير معرف على انه static داخل (method) معرفة على انها static وذلك يجوز .

ملاحظة : لا يجوز تعريف اي (data member) على انها const وفي نفس الوقت انها static وإذا تم تعريفها على انها const فهو ضمنياً static  اي يمكن الوصول إليه عن طريق اسم Class

4_static_code

 

لاحظ في البرنامج السابق سيظهر خطأ وذلك لانك قمت بتعريف المتغير ( name) على انه static وفي نفس الوقت const وهذا غير جائز واذا قمنا بتعريفه على انه const يمكننا الوصول إليه عن طريق اسم class

5_static_code

 

في البرنامج السابق استطعنا الوصول إلى المتغير (name)  عن طريق اسم الكلاس اي انه ضمنياً (static) ، ايضاً المتغيرات المعرفة على انها const هي متغيرات لا يمكن تغيير قيمها ويتم حجزها وتخزين قيمتها الأولية اثناء (compilation) وفي هذا النوع يجب تعيين قيم اولية اي لا يجوز تعريف المتغير على انه const ونوعه … وبعد ذلك نعين له القيمة ( هذا لا يجوز) وانما نقوم بتعيين القيمة الابتدائية للمتغيرات اثناء عملية الاعلان عنها .

6_static_code

 

ملاحظة : اذا تم تعريف class  على انه ( static) يجب تعريف جميع ما يحتويه class ايضاً على انها static .

7_static_code

 

ملاحظة : لا يمكن الوصول إلى اي شيء معرف على انه static من خلال object  وانما يتم الوصول إليه من خلال اسم class  ثم (.) ثم اسم (method) او اسم (data member).

8_static_code

يمكنك تحميل ما سبق بصيغة PDF 

للتحميل بصيغة PDF

عن الكاتب

أحمد أبو فارس

احمد ابو فارس طالب جامعي يدرس علم الحاسوب في جامعة البلقاء التطبيقية مهتم في عالم التكنولوجيا , مبرمج يجيد العمل على عدة لغات , محترف تصميم ومونتاج ، وأحد اعضاء مجموعة شعاع والقائمين عليها.