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

منتدي حضن الغريب


 

التسجيلالتسجيل  الرئيسيةالرئيسية  أحدث الصورأحدث الصور  دخولدخول  

 

 سلسلة دروس الجافا الدرس الثالث عشر

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


الجنس : ذكر
عدد الرسائل : 1282
تعاليق : عندما تنتقد أحداً فبعين النحل تعود أن تـُبصـِر
ولا تنظـُر للناس
بعين الذباب فتقع على ماهو مُستقذِر
و سأحكي لك قصه العنزة والذئب حتى لا
تأمن من يـُمكِر
وحينما يثق بك أحد فإياك ثم إياك أن تـُغدِر


تاريخ التسجيل : 09/02/2009

الاضافات
منتدنا على الفيس بوك:

سلسلة دروس الجافا      الدرس الثالث عشر Empty
مُساهمةموضوع: سلسلة دروس الجافا الدرس الثالث عشر   سلسلة دروس الجافا      الدرس الثالث عشر Icon_minitime1الثلاثاء 24 مارس 2009, 8:09 pm

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




في الدرس السابق قمنا بتصميم فئة Date ووضعنا فيها ثلاث صفات تمثل اليوم و
الشهر و السنة. و قمنا بتصميم وظيفتين احداهما تعطينا قيمة التاريخ و
الأخرى لوضع و تحديد التاريخ.



في درس اليوم سنقوم بتصميم فئة تستخدم الـ Date هكذا:



سلسلة دروس الجافا      الدرس الثالث عشر L13_useDate_1


في البرنامج السابق في السطر الخامس قمنا باعلان متغير من نوع Date و
أسميناه birthday، اذاً نحن نحتاج الآن إلى عضو من فئة Date التي كتبناها
في الدرس السابق.



كي نعرف المتغير من نوع Date نكتب التالي:




Date birthDate;



لكي نفهم الجملة السابقة، علينا أن ننظر إلى الصورة التالية. و هي
تمثّل جزء من الذاكرة. نريد ان نحجزه للمتغير birthDate من نوع Date.



سلسلة دروس الجافا      الدرس الثالث عشر L13_mem_0


كما هو موضّح في الصورة ان قيمة المتغير في الذاكرة تمثلها علامات
استفهام. ذلك ان المتغير birthDate ليس كائن في حد ذاته. بل هو متغير
لعنوان الكائن.


كي تتم ترجمة الجملة السابقة بدون مشاكل يجب أن يكون ملف Date.class
موجوداً في نفس الحافظة. (في المستقبل سنتعلم انشاء الله كيف نحدد أماكن
الفئات). و لكن في الوضع الحالي سنكتفي بوضع هذا الملف مع الملف السابق في
نفس الحافظة.



الآن لكي ننشئ الكائن نفسه علينا أن نستخدم الطريقة التالية:



سلسلة دروس الجافا      الدرس الثالث عشر L13_useDate_2



نلاحظ في السطر السابع من البرنامج الموضح في الصورة السابقة هذه الجملة:




birthDate=new Date();




هممم أعتقد أن لديك الآن العديد من الأسئلة، أليس كذلك؟



اذاً دعنا نكمل الشرح اليوم بطريقة الأسئلة و الأجوبة :)


مالفرق بين المتغير من نوع Date و المتغير من أي نوع آخر ممن ألقينا عليه الضوء في درس المتغيرات؟


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



لم قمنا باستخدام الكلمة new؟ و ما الفائدة من السطر السابع؟


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



لم أفهم، أرجو التوضيح أكثر في السؤال السابق؟



دعونا نستخدم الرسوم التوضيحية، لمعرفة ما تم في هذه الجملة:



Date birthDate=new Date();




ان القسم الأول من الجملة (أو في برنامجنا ما هو موجود في السطر الخامس) يمكن تمثيله بالصورة التالية:


سلسلة دروس الجافا      الدرس الثالث عشر L13_mem_1


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



أما الصورة التالية:


سلسلة دروس الجافا      الدرس الثالث عشر L13_mem_2


فهي تظلل القسم الأخير من الجملة الذي يعني اننا سنقوم بانشاء كائن من
نوع Date في ذاكرة الكومبيوتر. و لنفرض مجرد فرض ان عنوان هذا المكان الذي
وضعنا فيه الكائن هو العنوان الموضح في اسفل المنطقة المظللة.



ملاحظة: ان المتغيرات day و month و year سيتم اعطاؤهم القيمة المبدئية (0) بشكل اوتوماتيكي. لأنهم ينتمون لكائن، و ليس لوظيفة محددة.



اننا حتى الآن أنشأنا على أحد طرفي الجملة متغيراً لا توجد فيه أي قيمة. و
في الطرف الآخر أنشأنا في الذاكرة كائناً شيئيّاً من نوع Date. لاحظ ما
سيحدث الآن:


سلسلة دروس الجافا      الدرس الثالث عشر L13_mem_3


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

هل المقصود ان عدم وضع القيمة المبدئية لأي متغير من هذا النوع يعني عدم القدرة على استخدام هذا المتغير؟


بالضبط! ان المتغير الشيئي أو الكائني أو الذي نريد أن ننشيء عن طريقه
عضواً من فئة محددة لابد من اعطائه قيمة مبدئية باستخدام الكلمة new. لأنه
كما لاحظنا من السيناريو السابق، ان الاكتفاء بتعريف المتغير، يقوم بوضع
علامات استفهام في المتغير.



في هذا الدرس قمنا بانشاء المتغير من نوع Date في الدرس القادم سنستخدمه و نستخدم وظائفه المختلفة.



وفوق كل ذي علم عليم
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://nasserstar.ahlamontada.com
 
سلسلة دروس الجافا الدرس الثالث عشر
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدي حضن الغريب :: منتدى البرامج والكمبيوتر والحماية والماسنجر :: قسم الكمبيوتر والحماية والهواتف والشفرات-
انتقل الى: