.:رسمه مبدع:.
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
.:رسمه مبدع:.
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
.:رسمه مبدع:.
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


.:رسمه مبدع:. طريقك نحو الابداع
 
الرئيسيةالبوابهأحدث الصورالتسجيلدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

 

 دوره فى لغه الجافا9

اذهب الى الأسفل 
كاتب الموضوعرسالة
PrAmJnEt
مدير عام
مدير عام
PrAmJnEt


ذكر عدد المساهمات : 396
نقاط : 146692
العمر : 65

دوره فى لغه الجافا9 Empty
مُساهمةموضوع: دوره فى لغه الجافا9   دوره فى لغه الجافا9 Emptyالإثنين مايو 11, 2009 1:32 pm

لسلام عليكم ورحمة الله وبركاته..

في الدرس السابق قمنا بتصميم فئة
Date ووضعنا فيها ثلاث صفات تمثل اليوم و الشهر و السنة. و قمنا بتصميم
وظيفتين احداهما تعطينا قيمة التاريخ و الأخرى لوضع و تحديد التاريخ.
في درس اليوم سنقوم بتصميم فئة تستخدم الـ Date هكذا:
دوره فى لغه الجافا9 L13_useDate_1
في
البرنامج السابق في السطر الخامس قمنا باعلان متغير من نوع Date و أسميناه
birthday، اذاً نحن نحتاج الآن إلى عضو من فئة Date التي كتبناها في الدرس
السابق.
كي نعرف المتغير من نوع Date نكتب التالي:
Date birthDate;
لكي
نفهم الجملة السابقة، علينا أن ننظر إلى الصورة التالية. و هي تمثّل جزء
من الذاكرة. نريد ان نحجزه للمتغير birthDate من نوع Date.
دوره فى لغه الجافا9 L13_mem_0
كما
هو موضّح في الصورة ان قيمة المتغير في الذاكرة تمثلها علامات استفهام.
ذلك ان المتغير birthDate ليس كائن في حد ذاته. بل هو متغير لعنوان
الكائن.
كي تتم ترجمة الجملة السابقة بدون مشاكل يجب أن يكون ملف
Date.class موجوداً في نفس الحافظة. (في المستقبل سنتعلم انشاء الله كيف
نحدد أماكن الفئات). و لكن في الوضع الحالي سنكتفي بوضع هذا الملف مع
الملف السابق في نفس الحافظة.
الآن لكي ننشئ الكائن نفسه علينا أن نستخدم الطريقة التالية:
دوره فى لغه الجافا9 L13_useDate_2
نلاحظ في السطر السابع من البرنامج الموضح في الصورة السابقة هذه الجملة:
birthDate=new Date();
هممم أعتقد أن لديك الآن العديد من الأسئلة، أليس كذلك؟
اذاً دعنا نكمل الشرح اليوم بطريقة الأسئلة و الأجوبة Smile

مالفرق بين المتغير من نوع Date و المتغير من أي نوع آخر ممن ألقينا عليه الضوء في درس المتغيرات؟
ان
المتغير من نوع Date هو من فئة قام المبرمج بتعريفها. أي انه متغير يمثّل
عضواً من فئة. اما المتغيرات سابقة الذكر مثل int و char و boolean فهم
متغيرون لا ينتمون فعلياً لفئة محددة، و لكنهم يمثلون أنواع المتغيرات
البسيطة. ان المتغير Date يعتبر أكثر تعقيداً نوعاً ما.

لم قمنا باستخدام الكلمة new؟ و ما الفائدة من السطر السابع؟
سبق
و ضمن شرحنا للسطر الخامس من نفس البرنامج أن اوضحنا ان اعلان المتغيرات
من نوع الفئات أو ما نطلق عليهم Aggregate Data Types هي في الواقع اعلان
النيّة عن اعلان المتغير. و لكن ما حدث في السطر السابع، ان المترجم قام
بتهيئة جميع أجزاء التاريخ الفعلي، و أنشأ كائناً من نوع Date ثم وضع
عنوان الذاكرة لهذا الكائن في المتغير birthDate.

لم أفهم، أرجو التوضيح أكثر في السؤال السابق؟
دعونا نستخدم الرسوم التوضيحية، لمعرفة ما تم في هذه الجملة:
Date birthDate=new Date();
ان القسم الأول من الجملة (أو في برنامجنا ما هو موجود في السطر الخامس) يمكن تمثيله بالصورة التالية:
دوره فى لغه الجافا9 L13_mem_1

ان
القسم المظلل من الصورة يصور لنا ما يعنيه الجزء الأول من الجملة. انه
يعني اننا قمنا بانشاء متغير (علبة) تحفظ في داخلها عنوان كائن شيئي من
نوع Date. و لكن لاحظ أن القيمة المبدئية في المتغير غير معرّفة حتى هذه
اللحظة (قبل ان ننتقل لبقية الجملة). أي اننا نمهد لانشاء كائن من نوع
Date و لكننا لم ننشئه حتى الآن، لذا وضعنا في داخل المتغير birthDate
علامات استفهام.
أما الصورة التالية:
دوره فى لغه الجافا9 L13_mem_2

فهي
تظلل القسم الأخير من الجملة الذي يعني اننا سنقوم بانشاء كائن من نوع
Date في ذاكرة الكومبيوتر. و لنفرض مجرد فرض ان عنوان هذا المكان الذي
وضعنا فيه الكائن هو العنوان الموضح في اسفل المنطقة المظللة.
ملاحظة: ان المتغيرات day و month و year سيتم اعطاؤهم القيمة المبدئية (0) بشكل اوتوماتيكي. لأنهم ينتمون لكائن، و ليس لوظيفة محددة.
اننا
حتى الآن أنشأنا على أحد طرفي الجملة متغيراً لا توجد فيه أي قيمة. و في
الطرف الآخر أنشأنا في الذاكرة كائناً شيئيّاً من نوع Date. لاحظ ما سيحدث
الآن:
دوره فى لغه الجافا9 L13_mem_3

ان
علامة المساواة في هذه الجملة تعني ان عنوان الكائن الذي انشأناه في
الذاكرة سيتم وضعه في المتغير birthDate. و هذه هي طريقة اعطاء المتغير من
نوع Aggregate Data Type القيمة المبدئية.

هل المقصود ان عدم وضع القيمة المبدئية لأي متغير من هذا النوع يعني عدم القدرة على استخدام هذا المتغير؟
بالضبط!
ان المتغير الشيئي أو الكائني أو الذي نريد أن ننشيء عن طريقه عضواً من
فئة محددة لابد من اعطائه قيمة مبدئية باستخدام الكلمة new. لأنه كما
لاحظنا من السيناريو السابق، ان الاكتفاء بتعريف المتغير، يقوم بوضع
علامات استفهام في المتغير.
في هذا الدرس قمنا بانشاء المتغير من نوع Date في الدرس القادم سنستخدمه و نستخدم وظائفه المختلفة.
وفوق كل ذي علم عليم
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://rsma-m.yoo7.com
 
دوره فى لغه الجافا9
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» دوره فى لغه الجافا
» دوره فى لغه الاوراكل
» دوره فى لغه السى
» تابع دوره فى لغه الجافا2
» تابع دوره فى لغه السى 17

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
.:رسمه مبدع:. :: ¨°o.O (لغات البرمجه) O.o°¨ :: .:جافا:.-
انتقل الى: