البرمجة بإستخدام الكائنات ... في العمق
الآن وبعد أن عرفنا الفكرة العامة للطريقة التي تعمل بها الكائنات في مقالة سابقة يقول المبدع والاس وانج بأنكم قد تشعرون بالفضول نحو معرفة كيفية عمل الكائنات في فيجوال بيسك ... أولاً يجب علينا أن ننشىء ملف ليحدد نوع الكائن Class Module وهو ملف ينتهي بالإمتداد Cls ، ويقوم هذا الملف بتعريف التالي :-
1-نوع البيانات التي يمكن للكائن أن يحتفظ بها ولكن ( ليس البيانات نفسها ) .
2-الأوامر ( الأساليب ) التي تتعامل مع هذه البيانات .
إن البيانات التي يتم تعريفها في الكائن تسمى خصائص الكائن Objects Properties والأوامر التي تتعامل مع هذه البيانات في الكائن تٍسمى أساليب الكائن Objects Methods .
إذا لم يكن مصطلحا الخصائص والأساليب واضحين في ذهنك ، فلا تقلق فلست وحدك الذي تشعر بذلك :lol: ؟
إن ملف نوع الكائن Class Module يعمل مثل القالب الذي تصب فيه العجين لتصنع كعكة بأشكال معينة ، إن هذا الملف أعزائي لا يحتوي على الكائنات نفسها ولكنه يحدد نوع البيانات فيها والأوامر التي تتعامل مع هذه البيانات .
ويمكن لملف نوع الكائن أن يحتوي على ثلاثة أجزاء هي :-
-الإعلان عن المتغيرات المستخدمة في الكائن .
-الإعلان عن الخصائص .
-الأساليب Methods وهي أوامر بيسك يتم وضعها في إجراءات وتتعامل مع البيانات والخصائص الموجودة في الكائن .
الإعلان عن المتغيرات
من الأفكار الجيدة أن تعلن عن جميع المتغيرات في بداية الملف ، فبهذا الشكل ستتمكن من معرفة نوع المعلومات التي تستخدمها الكائنات ، وإذا أردت أن تعلن عن متغير بحيث يمكنك إستخدامه من داخل أي مكان في البرنامج قم بإستخدام كلمة Public مثل :-
Public MoneyStolen As Currency
وإذا أعلنت عن متغير عام Public Variable سيتمكن أي جزء من البرنامج من إستخدام هذا المتغير ( بما في ذلك الكائنات الأخرى ) وهذا يعني أن عملية إكتشاف الأخطاء ستصبح صعبة للغاية ، وكمبدأ عام لا تعلن عن متغير عام إلا إذا كان لديك سبب وجيه لذلك .
أما إذا أردت أن تعلن عن متغير بحيث تتمكن من إستخدامه في ملف نوع الكائنات فقط قم بإستخدام كلمة Private مثل :-
Private Counter As Integer
تعريف خصائص الكائن
بالنسبة لبقية البرنامج هناك نوعان من الخصائص فقط
1-الخصائص التي يستطيع البرنامج أن يعين قيمة لها .
2-الخصائص التي يستطيع البرنامج أن يقرأ قيمتها .
على سبيل المثال ، إذا كانت لديك خاصية تسمى Direction وأردت أن تعين قيمة لها فإنك تعلن عن هذه الخاصية في ملف نوع الكائنات Class Module كما يلي :-
Private mWay As Integer
Property Let Direction (ByVal WhichWay As Integer )
mWay = WhichWay
End Property
سيفسر فيجوال بيسك الأوامر السابقة كما يلي :
-السطر الأول ينشىء متغيراً محلياً يسمي mWay وهذا المتغير يمكن أن يحتفظ بأعداد صحيحة .
-السطر الثاني يطلب من فيجوال بيسك أن يتيح للأجزاء الأخرى من البرنامج أن تعدل قيمة المتغير mWay
-السطر الثالث يطلب من فيجوال بيسك أن يضع القيمة التي يجدها في خاصية Direction في المتغير mWay .
-السطر الرابع يخبر فيجوال بيسك أن هذه هي نهاية تعريف الخاصية
كتابة الأساليب للكائن الجديد :-
بعد ان تعلن عن المتغيرات التي ستستخدمها في الكائن وتعرف خصائصه فإن الخطوة التالية هي أن تكتب الأساليب Methods الخاصة بهذا الكائن ، هذه الأساليب هي إجراءات Procedures أو دالات Functions تتعامل مع البيانات الموجودة داخل الكائن .
إن كتابة الإجراءات أو الدالات عملية مباشرة وبسيطة ، والإختلاف الأساسي هو أنك تستخدم كلمة Public في بداية كل إجراء أو دالة مثل :-
Public sub move ( )
أو
Public Function XLocation ( ) As Integer
تصميم نوع الكائن على الورق :-
يمكنك أن تبدأ مباشرة في كتابة أوامر بيسيك وتصمم نوع Class الكائن الذي تريده ، ولكن الواقع العملي يقول أنك يجب أن تمضي بعض الوقت وتصمم نوع الكائن على الورق أولاً ، فإن أفضل طريقة للتصميم المثالي لنوع الكائنات يعتمد على الطريقة التي تريد أن تستخدم بها هذه الكائنات ، وقد يكون التصميم المثالي لنوع الكائنات في أحد البرامج بشعاً بالنسبة لبرنامج آخر ، ورغم ذلك فإليكم بعض التلميحات العامة التي يجب أن تضعها في ذهنك عند تصميم نوع الكائنات .
لكي تحدد خصائص نوع الكائن حدد أولاً البيانات التي سيتعامل معها هذا الكائن ، فإذا كنت تكتب برنامجاً ليتعامل مع بيانات الموظفين فإنك بحاجة لإضافة خصائص تحتوي على الأسماء ، والعناوين وأرقام الهواتف ومستوى الكفاءة وغيرها ، وإذا كنت تكتب برنامجاً ليتعامل مع الكتب فأنت بحاجة لخصائص للعناوين والمؤلفين وتاريخ نشر الكتب .
ولكي تحدد أساليب الكائن حدد ماذا يريد البرنامج أن يفعل بالبيانات الموجودة في الكائن ، فمثلاً إذا كنت تكتب برنامجاً مع بيانات الموظفين فأنت بحاجة إلى أساليب للبحث عن بيانات الموظفين وفرزها Sort وطبعها ، أما إذا كنت تكتب برنامجاً ليتعامل مع الكتب فأنت في حاجة إلى أساليب لتحديد حركة البيع للكتب ونصيب كل عنوان أو مؤلف ، وبعد أن تحدد أساليب وخصائص الكائن ستكون مستعداً لإنشاء ملف نوع الكائن Class Module في فيجوال بيسك ، وهذا ما سوف نعرفه في المقالة الثالثة والأخيرة مع والاس وانج والبرمجة بإستخدام الكائنات .