الجمعة، 16 نوفمبر 2012
دورة [VBScript] الدرس السابع: الكائنات والأصناف ج 8
الدرس السابع: الكائنات والأصناف ج 8
الجزء الثالث VBScript
هذه السلسة التي كنا قد بدأناها بجزأين، يمثل الأول مقدمة إلى اللغة ويحوي الثاني جزءا كبيرا من مفاهيم اللغة، وكما قد نوهنا سابقا بأن الجزأين السابقين كافيان لتوضيح الحصة الكبرى من هذه اللغة، أما فيما تبقى من الدروس -التي تم فصلها بناء على رغبة الاخوة- فإن الحديث سيكون حول موضوعات متقدمة بعض الشيء، وعلى الأخص الدرسين الأولين، فإن لم تكن شغوفا للتطلع لكيفية إدارة الأمور فإنك تستطيع انتظار الدروس التي تليها وثق بأنك تجاوزك لهذه الدرسين لن يؤثر على استيعابك لما يليها،
إلا أنك ستفتقد إمكانية النظر إلى ما خلف الكواليس.
أخيراً احب أن أخبركم بأنني أجد صعوبة في تبسيط بعض الأمور من خلال نقاط سريعة لذلك
فأنا لا أثق أنني أستطيع إيصال ما أريد إيصاله لك كاملا ولكنني سأحاول ذلك و أتتمنى
أن أوفق،
الدرس الثامن: الكائنات والأصناف Objects and Classes…
كأني بك تتساءل الآن "هل لغة VBScript لغة كائنية التوجه وإذا لم يكن الأمر كذلك فما سر هذه المقدمة؟!" والجواب بأن لغة VBScript ليست لغة كائنية التوجه لأنها لا تدعم المبادئ الأساسية للأخيرة …… ولكن اللغة قد بدأت بدعم فكرة الأصناف والتي تعد المدخل الرئيس لفكرة البرمجة كائنية التوجه ولا أدري لماذا لم تكمل مايكروسوفت مسيرتها وتقوم بدعم أسلوب OOP ولو بشكل جزئي كما فعلت في اللغة الأم Visual Basic.
إذا كنت ترى أن ما تحدثنا عنه مربكا بالنسبة لك فأنت بحاجة إلى توضيح لبعض المفاهيم قبيل الانتقال إلى التطبيق العملي…
الكائن Object
تدعم لغة VBScript مفهوم الكائنات منذ إصداراتها الأولى ويمكن اعتبار أي كيان معروف في الوجود كائنا مثلا "محمد" كائن، وموقع "Abda3 Design" كائن آخر، والشركة الفلانية كائن ثالث وهكذا … ولكل كائن خصائص 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 لتحرير الذاكرة كالتالي ..
كود:
Set objBook = Nothing
إنشاء الخصائص
تمثل الخصائص متغيرات ويفضل أن تكون من نوع Private أي يمكن التعامل معها على مستوى الصنف فقط..
كود:
Private m_sUsername
وهناك عدة أنواع من الخصائص، فمنها ما هو للقراءة فقط ومنها ما هو للكتابة فقط ومنها ما هو للقراءة والكتابة معا، وتوفر لغة VBScript بعض الإجراءات التي تمكنك من قراءة وكتابة الخصائص، وفيما يلي توضيح ذلك..
1. الإجراء Property Let
ويستخدم لإسناد القيم للخصائص..
كود:
'التي تمثل كلمة المرور CustomerPassword متغير الخاصية
Private m_sPassword
Public Property Let CustomerPassword(sPassword)
m_sPassword = sPassword ' إسناد القيمة الجديدة
End Property
2. الإجراء Property Get
كود:
Class CCustomr
'التي تمثل كلمة المرور 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
ملاحظات عامة:
ستجد في الدرس اللاحق تطبيقات أخرى على الاصناف تجعلك تفكر بشكل جدي باستعمالها في شيفراتك المستقبلية.
ولأي إستفسار الرجاء ترك تعليقاتكم لأقوم بالإجابة عليها في القريب العاجل
لا تقرأ وترحل شارك معنا بتعليق فنحن نسعى لنقدم لك الافضل والاجمل
التسميات:
دورة تعليم لغة الــ html,
دورة css,
دورة VBScript,
دورة xml,
HTML دورة,
xhtml
بقلم : Abda3Design
لخدمات التصميم والبرمجة
إدارة تتبنى عمل المواقع الخدمية المتنوعة للأفراد والهيئات والمؤسسات الكبرى. كما يمكنها عمل مواقع للتجارة الإلكترونية كما تتميز مؤسسة "ابداع ديزاين" . بأقوى فريق عمل متواصل مع العملاء 24 ساعة على مدار الأسبوع وتمتاز أيضا بكفاءة الدقة والسرعة
ضع تعليقك
0 التعليقات:
إرسال تعليق