|
سلسلة تعلم VBScript – الجزء الثالث - الكائنات والأصناف
ها نحن نعود بعد توقف مرحلي إلى سلسلتنا التعليمية حول VBScript، لاستكمال جزئها الثالث والأخير ………
هذه السلسة التي كنا قد بدأناها بجزأين، يمثل الأول مقدمة إلى اللغة ويحوي الثاني جزءا كبيرا من مفاهيم اللغة، وكما قد نوهنا سابقا بأن الجزأين السابقين كافيان لتوضيح الحصة الكبرى من هذه اللغة، أما فيما تبقى من الدروس -التي تم فصلها بناء على رغبة الاخوة- فإن الحديث سيكون حول موضوعات متقدمة بعض الشيء، وعلى الأخص
الدرسين الأولين، فإن لم تكن شغوفا للتطلع لكيفية إدارة الأمور فإنك تستطيع انتظار الدروس التي تليها وثق بأنك تجاوزك لهذه الدرسين لن يؤثر على استيعابك لما يليها، إلا أنك ستفتقد إمكانية النظر إلى ما خلف الكواليس.
أخيراً احب أن أخبرك بأنني أجد صعوبة في تبسيط بعض الأمور من خلال نقاط سريعة لذلك فأنا لا أثق أنني أستطيع إيصال ما أريد إيصاله لك كاملا ولكنني سأحاول ذلك و أتتمنى أن أوفق، فإن اصبت فهذا ما اردت وان اخللت أو انقصت فأتمنى تنبيهي،،،
الدرس الثامن: الكائنات والأصناف Objects and Classes…
لا شك أنك كمبرمج قد سمعت عن مصطلح OOP أو أسلوب البرمجة كائنية التوجه، وربما قد اعتدت استعماله إذا كنت مبرمجا بإحدى اللغات التي تدعمه بشكل جيد كـC++ و Java ومن المؤكد أنه سيكون وسيلة تفكيرك الوحيدة إذا انتقلت إلى بيئة .Net الجديدة من
مايكروسوفت……
كأني بك تتساءل الآن "هل لغة VBScript لغة كائنية التوجه وإذا لم يكن الأمر كذلك فما سر هذه المقدمة؟!" والجواب بأن لغة VBScript ليست لغة كائنية التوجه لأنها لا تدعم المبادئ الأساسية للأخيرة …… ولكن اللغة قد بدأت بدعم فكرة الأصناف والتي تعد المدخل الرئيس لفكرة البرمجة كائنية التوجه ولا أدري لماذا لم تكمل مايكروسوفت
مسيرتها وتقوم بدعم أسلوب OOP ولو بشكل جزئي كما فعلت في اللغة الأم Visual Basic.
إذا كنت ترى أن ما تحدثنا عنه مربكا بالنسبة لك فأنت بحاجة إلى توضيح لبعض المفاهيم قبيل الانتقال إلى التطبيق العملي…
الكائن Object
تدعم لغة VBScript مفهوم الكائنات منذ إصداراتها الأولى ويمكن اعتبار أي كيان معروف في الوجود كائنا مثلا "محمد" كائن، وموقع "C4arab" كائن آخر، والشركة الفلانية كائن ثالث وهكذا … ولكل كائن خصائص Properties مميزة له تعرفه كاللون والحجم، أيضا للكائن طرق Methods وهي الأعمال التي يقوم الكائن بإنجازها كالحركة أو القراءة.
الصنف Class
يعد الصنف النواة الأساسية للبرمجة كائنية التوجه OOP، وقد تم دعم مفهوم الصنف في لغة VBScript منذ الإصدار الخامس للغة ويمكن تعريف الصنف بأنه جملة من الكائنات المتشابهة في الخصائص والطرق، فمثلا "محمد" و "احمد" كائنان من صنف الإنسان حيث
نلاحظ أن لهما نفس الخصائص والطرق، بينما يختلف صنف "الدراجة الهوائية" عن صنف "الإنسان"، فالأول قد يحتوي على الخاصية "حجم العجلات" أما الثاني فلا. ولنأخذ مثال من بيئة البرمجة فمثلا عنصر تحكم HTML المسمى TextArea يعتبر صنف، ولو وضعنا نسخا(حالات) في صفحتنا فسيعتبر كلا منها كائن مثلا TextArea1 و TextArea2.
إنشاء الأصناف
قبل الحديث عن كيفية إنشاء الأصناف من المفيد أن أخبرك بأن بنائك للصنف سيتيح لك إعادة استخدامه مستقبلا بطريقة سهلة ودون حدوث مشكلات مع نصك البرمجي الجديد، وهذا مما ابرز فوائد استخدام هذا الأسلوب البرمجي.
عند إنشائك لصنف معين ستفكر في الخصائص والطرق – والتي تطرقنا لها سابقا – إضافة للأحداث التي سنتطرق لها بعد قليل.
وتمكنك لغة VBScript من إضافة الأصناف من خلال العبارة Class كالتالي
كود:
Class ClassName
'Class Code
End Class
إنشاء كائن من الصنف وتدميره
لن نتمكن من استخدام الصنف المنشأ إلا بعد إنشاء حالة(كائن) منه، ويمكن إنشاء كائن من صنف كالتالي ..
كود:
Dim objBook 'التصريح عن متغير للكائن
Set objBook = New CBook 'CBook إنشاء كائن من الصنف
لعلك لاحظت في المثال السابق استخدامنا للعبارة Set عند إسناد القيمة للمتغير والسبب في ذلك أننا نتعامل مع متغير لكائن وهذا يعني أننا لا نقوم بإسناد الكائن نفسه، ولكننا نضع مؤشر Pointer إليه.
ولتدمير الكائن –عند عدم الحاجة إليه- فإننا نستخدم القيمة Nothing لتحرير الذاكرة كالتالي ..
إنشاء الخصائص
تمثل الخصائص متغيرات ويفضل أن تكون من نوع Private أي يمكن التعامل معها على مستوى الصنف فقط..
وهناك عدة أنواع من الخصائص، فمنها ما هو للقراءة فقط ومنها ما هو للكتابة فقط ومنها ما هو للقراءة والكتابة معا، وتوفر لغة VBScript بعض الإجراءات التي تمكنك من قراءة وكتابة الخصائص، وفيما يلي توضيح ذلك..
1. الإجراء Property Let
ويستخدم لإسناد القيم للخصائص..
كود:
'التي تمثل كلمة المرور CustomerPassword متغير الخاصية
Private m_sPassword
Public Property Let CustomerPassword(sPassword)
m_sPassword = sPassword ' إسناد القيمة الجديدة
End Property
2. الإجراء Property Get
كود:
Class CCustomer
'التي تمثل كلمة المرور CustomerAge متغير الخاصية
Private m_iAge
Public Property Let CustomerAge(iAge)
m_iAge = iAge 'إسناد القيمة الجديدة
End Property
Public Property Get CustomerAge()
CustomerAge = m_iAge 'قراءة القيمة الحالية
End Property
End Class
ويمكن التعامل مع الخاصية السابقة كالتالي..
كود:
Dim objCustomer
Set objCustomer = New CCustomer
objCustomer.CustomerAge = 90 ' ضبط
msgbox objCustomer.CustomerAge ' قراءة
3. الإجراء Property Set
وهو يشبه الإجراء Property Let كثيرا ولكنه يستخدم مع الكائنات.
إنشاء الطرق
الطرق قد تكون دالة أو إجراء فرعي –وقد تناولنا الدوال والإجراءات في الجزء الثاني-
ولذلك ستجد أن إضافة الطرق للصنف عملا سهلا..
كود:
Class CCustomer
' ShowGreeting الإجراء الفرعي الذي يمثل الطريقة
Sub ShowGreeting()
document.write "Hello"
End Sub
End Class
ويمكن استخدام الطريقة السابقة من خلال شيفرتك كالتالي..
كود:
Dim objCustomer
Set objCustomer = New CCustomer
'ShowGreeting استدعاء الطريقة
objCustomer.ShowGreeting
إنشاء الأحداث Events
الحدث هو عبارة عن رسالة يمكن للكائن إرسالها، فمثلا عند النقر على زر أمر كالذي
يظهر في مربعات الحوار فسينطلق حدث النقر Click، ويمكنك إضافة كود ينفذ مهمة معينة عند إطلاق حدث معين …
وتوفر لغة VBScript الحدثين Class_Initialize الذي يتم إطلاقه عند إنشاء الكائن والحدث Class_Terminate والذي يتم إطلاقه عندما تتحرر كافة المؤشرات التي تشير إلى الكائن، وهذا مثال لتوظيف الحدث Class_Initialize
كود:
Private Sub Class_Initialize()
msgbox "Created"
End Sub
ملاحظات عامة:
ستجد في الدرس اللاحق تطبيقات أخرى على الاصناف تجعلك تفكر بشكل جدي باستعمالها في شيفراتك المستقبلية.
المزيد من المواضيع
سلسلة تعلم VBScript – الجزء الثالث - :نظرة لبعض تطبيقات اللغة.
سلسلة تعلم VBScript – الجزء الثالث - :المزيد عن الكائنات.
الدرس الثاني عشر:نظرة لبعض تطبيقات اللغة.
سلسلة تعلم VBScript – الجزء الثالث - : مكوناتCOM، استخدامها و بنائها
سلسلة تعلم VBScript – الجزء الثاني - الإجراءات المعرفة ضمن لغة VBScript
سلسلة تعلم VBScript -الجزء الاول - المبادئ
سلسلة تعلم VBScript – الجزء الثاني - الدوال والإجراءات الفرعية
سلسلة تعلم VBScript – الجزء الثاني - التكرار
سلسلة تعلم VBScript – الجزء الثاني - الجمل الشرطية
سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة.
سلسلة تعلم VBScript -الجزء الاول - الاسس
|