mcse
مرحباا بك في منتدى mcse
تشكرك الادارة على هده الزيارة


انضم إلى المنتدى ، فالأمر سريع وسهل

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

(12) تعريف فئة

اذهب الى الأسفل

(12) تعريف فئة Empty (12) تعريف فئة

مُساهمة من طرف Ebisu الأربعاء يونيو 16, 2010 11:47 am


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

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

لقد اخترت لكم فئة تعتبر المثال المفضّل عند معظم المصممين لوضوحها و
سهولة
استخدامها. لنضع التصميم المبدئي لهذه الفئة مع بعض :-)


Date
الصفات:
رقم يمثل اليوم
رقم يمثل الشهر
رقم يمثل السنة


لنقم بكتابة ذلك بالجافا. لنتوقف و نفكّر قليلاً. ما الذي نقوم
بتعريفه؟ اننا
نقوم بتعريف فئة اسمها Date، اذاً سنكتب التالي:

(12) تعريف فئة Date_0

الخطوة التالية هي تعريف مميزات أو صفات هذه الفئة. نلاحظ ف يالجدول
السابق،
أننا وضعنا ثلاثة أرقام بحيث يمثّل أحدها اليوم و الثاني الشهر و
الثالث السنة.

لذا سنضع ثلاثة متغيرات رقمية (في الوقت الحاضر، و قد نغيرها فيما بعد)
لكل صفة
من الصفات، هكذا:

(12) تعريف فئة Date_1

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



Date
الصفات:
رقم يمثل اليوم
رقم يمثل الشهر
رقم يمثل السنة
الامكانيات:
امكانية الاستعلام عن التاريخ
امكانية وضع التاريخ


الوظيفة هي مجموعة من الأوامر المكتوبة بلغة الجافا، تقوم بمهمة محددة.
لنقم
بوضع الامكانية الأولى و هي الاستعلام عن التاريخ، سيظهر البرنامج كما
يلي:

(12) تعريف فئة Date_2

سنتوقف هنا قليلاً، لننظر للكود الذي تركته في المساحة البيضاء. فقد
قمنا فيه
بتعريف الوظيفة. في السطر الأول من الوظيفة نرى التالي:


public String getDate(){


اننا في هذا السطر نقوم بتعريف وظيفة. الكلمة الأولى public لو تذكرون
اننا
تحدثنا عنها عندما كتبنا أول برنامج بالجافا. فهذه الكلمة هي مغيّر
الدخول أو
(Access Modifier). و قد وضعناه لهذه الوظيفة (Method) عام، لأننا نريد
لأي فئة
أو برنامج آخر يقومون باستخدام هذه الفئة أو اعضاءها أن يتمكنوا من
الاستعلام
عن التاريخ.

ان أي وظيفة في أي فئة لابد أن يكون لها نوع اعادة (Return type). و في
مثالنا،
ما الذي نريده ان يود الينا.... التاريخ أليس كذلك؟ حسناً التاريخ الذي
نريده
سيكون في صيغة نصية (String)

الكلمة التالية هي اسم الوظيفة و يقوم المبرمج بتحديدها. و هذه الكلمة
تكون
عادة في صيغة فعل يدل على الوظيفة التي تؤديها هذه الوظيفة. في حالتنا
هذه
سمّيناها:


getDate()


لأننا في الواقع نريدها أن تعيد لنا قيمة تخبرنا عن التاريخ. لابد ان
ينتهي
تعريف أي وظيف بقوسين دائريين، و هما في هذه الوظيفة لا يحتويان على أي
شيء. ثم
قوس المجموعة الذي

ننتقل للسطر التالي و هو في داخل الوظيفة:



String str=day + "/" + month +
"/" +
year;


في السطر السابق نلاحظ اننا قمنا بتعريف (اعلان او اشهار) متغيّر من
نوع نصي
كلمي: String و أسميناه str، و أعطيناه قيمة مبدئية عبارة عن شكل
التاريخ بحيث
وضعنا اليوم ثم علامة "/" و الشهر، ثم علامة "/" ثم السنة. و هكذا أصبح
المتغير
str فيه التاريخ المخصص لأي عضو في الفئة (والذي قد يختلف من عضو إلى
آخر)

في السطر التالي:


return str;


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

في مثالنا كان الـ return type هو String، و هكذا وضعنا بعد كلمة
return
المتغير من نوع النص الكلمي String و كان في حالتنا المتغير str.

ملخص الوظيفة السابقة
اننا في الوظيفة السابقة قمنا بتعريف امكانية من امكانيات أي عضو من
فئة
التاريخ، و هي اعطاء قيمة التاريخ. و هو يعطيها في شكل نص كلمي String.

ما رأيكم لو قمنا بتعريف الوظيفة الثانية معاً أيضاً و هي تحديد
التاريخ.

سنكتبها في الجافا بهذا الشكل:

(12) تعريف فئة Date_3

في الصورة السابقة نلاحظ اننا في تعريفنا لوظيفة تحديد التاريخ، قد
قمنا
بتعريفها بطريقة تختلف قليلاً عن وظيفة الاستعلام. ولكن المبدأ هو نفسه
في
الحالتين.

لنتابع معاً، السطر التالي:


public void setDate(int d, int
m, int
y){


هذه الوظيفة هي أيضاً public مثل سابقتها. و لكن انظروا إلى النوع الذي
تعيده:
void و هو نوع متغيرات لم نتعرّض له أبداً. لأنه ببساطة ليس نوعاً
لمتغير. هو
نوع ليخبرنا ان هذه الوظيفة لا تقوم باعادة أي قيمة. انها تؤدي وظيفة
محددة فقط
لا غير.

نلاحظ أننا اسمينا الوظيفة: setDate و لكن ما تلاها ليس قوسين دائريين
فارغين،
بل فيهما السطر التالي:



int d, int m, int y


نطلق على ما سبق parameter list أو قائمة المتغيرات المدخلة للوظيفة.
في مثالنا
هنا نريد ان نعطي التاريخ ثلاث قيم، قيمة لليوم، و قيمة للشهر و قيمة
للسنة. و
هكذا قمنا بادخال ثلاث متغيرات هم d و m و y بحيث يمثل كل منهم على
الترتيب:
day, month, year.

فنلق نظرة على ما هو داخل الوظيفة:


day = d;
month = m;
year = y;


اننا في داخل هذه الوظيفة نساوي المتغيرات التي عرفناها في الفئة (Date
class)
بالـ parameter list.

عليك ان تقوم بتجهيز كود هذه الفئة كما هو، و تقوم بكتابته و عمل ترجمة
له حيث
اننا سنقوم في الدرس القادم باستخدام هذه الفئة ان شاء الله، و أتصور
أن الأمور
غير الواضحة ستتضح.
Ebisu
Ebisu
مبرمج جيد
مبرمج جيد

عدد المساهمات : 45
السٌّمعَة : 50
تاريخ التسجيل : 11/06/2010
العمر : 43

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى