السلام عليكم ورحمة الله وبركاته..
في الدرس السابق قمنا بانشاء متغير من نوع Date في هذا البرنامج:
و اليوم سنقوم باجراء التغييرات التالية:
لنتابع الخطوات التي قمنا بها في الكود السابق:
Date birthDate = new Date(); |
هذه الخطوة سبق و شرحنا الهدف منها في الدرس السابق. و هي باختصار تعني انشاء متغير يحفظ في داخلة قيم خاصة بكائن من نوع Date.
والآن،
بما أن birthDate هو كائن من نوع Date فانه يملك كل ما يملكه أي كائن
(عضو-object) ينتمي لهذه الفئة. و للتذكير سأضع برنامج فئة الـ Date هنا:
و الآن لنتابع الأسطر:
System.out.println(birthDate.getDate()); |
هذا
السطر يقوم في الواقع بعدة أمور، انه يقوم باستدعاء الوظيفة: getDate
الخاصة بالكائن birthDate. و كما نعرف ان هذه الوظيفة ستعطينا التعبير
النصّي للتاريخ أي انها سترجع لنا قيمة نصة كلمية (String) لذا وضعناها
مباشرة في داخل وظيفة الظباعة التي نستخدمها.
و هذا مشابه تماماً لأن نقول التالي:
String str = birthDate.getDate(); System.out.println(str); |
ذلك
اننا قمنا بوضع القيمة التي ترجعها لنا الوظيفة الخاصة بالكائن المسمّى
birthDate في متغير نصي من نوع String ثم قمنا بطباعة هذا المتغير. سنلاحظ
ان هذه الجملة ستطبع لنا القيمة: 0/0/0
أما في السطر التالي:
birthDate.setDate(10,8,2001); |
فقد قمنا باستدعاء الوظيفة الخاصة بتحديد التاريخ، و أعطيناها القيم المناسبة لذلك و هي 10 للـ day، و 8 للـ month، و 2001 للـ year.
نلاحظ
هنا أننا لم نقم بمساواة هذه الوظيفة بأي متغير، كذلك لم نقم باستدعائها
ضمن وظائف أخرى، و السبب ان هذه الوظيفة لا ترجع لنا أي قيمة، أي انها
تقوم بتنفيذ مجموعة من الأوامر فقط لا غير.
في السطر التالي قمنا بتكرار أمر الطباعة حتى نرى التغيرات التي حدثت على الكائن الخاص بنا:
System.out.println(birthDate.getDate()); |
بالرغم
من أن الأمر هو نفسه، إلا ان الناتج الذي ستتم طباعته سيختلف، ذلك اننا في
السطر الذي سبق هذا السطر (السطر السابع في البرنامج) قمنا باعطاء الـ day
و month و year قيماً أخرى، و هي التي ستظهر عند تشغيل البرنامج، هكذا:
اننا
في هذا الدرس قمنا بانشاء كائن باسم birthDate من نوع Date و استخدمنا
وظائفه المختلفة. و لأننا كتبنا فئة (class) الـ Date بشكل بسيط، فإن هذا
يجعلنا نستطيع في أي لحظة أن نطبع أو نظهر القيم المختلفة للفئة، بمعنى.
اننا نستطيع في أي لحظة في برنامجنا اليوم ان نضع هذه الجملة:
و
سترى ان البرنامج سيعمل بشكل طبيعي. اذا قمت بطباعة الوظيفة التي تستعلم
عن قيمة التاريخ للكائن birthDate ستجد انه يطبع لك القيمة 20 في خانة الـ
day. لم لا تجرب بنفسك، لترى النتيجة؟
أرجو ان يكون الدرس واضحاً
وفوق كل ذي علم عليم