الجمعة، 16 نوفمبر 2012

دورة [VBScript] الدرس السابع: الكائنات والأصناف ج 8

 الدرس السابع: الكائنات والأصناف ج 8


الجزء الثالث VBScript
دورة [VBScript] الدرس السابع: الكائنات والأصناف ج 8 | ابداع ديزاين abda3 designهذه السلسة التي كنا قد بدأناها بجزأين، يمثل الأول مقدمة إلى اللغة ويحوي الثاني  جزءا كبيرا من مفاهيم اللغة، وكما قد نوهنا سابقا بأن الجزأين السابقين كافيان لتوضيح الحصة الكبرى من هذه اللغة، أما فيما تبقى من الدروس -التي تم فصلها بناء على رغبة الاخوة- فإن الحديث سيكون حول موضوعات متقدمة بعض الشيء، وعلى الأخص الدرسين الأولين، فإن لم تكن شغوفا للتطلع لكيفية إدارة الأمور فإنك تستطيع انتظار الدروس التي تليها وثق بأنك تجاوزك لهذه الدرسين لن يؤثر على استيعابك لما يليها،
إلا أنك ستفتقد إمكانية النظر إلى ما خلف الكواليس.
أخيراً احب أن أخبركم بأنني أجد صعوبة في تبسيط بعض الأمور من خلال نقاط سريعة لذلك
فأنا لا أثق أنني أستطيع إيصال ما أريد إيصاله لك كاملا ولكنني سأحاول ذلك و أتتمنى
أن أوفق،

الدرس الثامن: الكائنات والأصناف Objects and Classes


لا شك أنك كمبرمج قد سمعت عن مصطلح OOP أو أسلوب البرمجة كائنية التوجه، وربما قد اعتدت استعماله إذا كنت مبرمجا بإحدى اللغات التي تدعمه بشكل جيد كـC++ و Java ومن المؤكد أنه سيكون وسيلة تفكيرك الوحيدة إذا انتقلت إلى بيئة .Net الجديدة من مايكروسوفت……
كأني بك تتساءل الآن "هل لغة 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



ملاحظات عامة:

 ستجد في الدرس اللاحق تطبيقات أخرى على الاصناف تجعلك تفكر بشكل جدي باستعمالها في شيفراتك المستقبلية.

ولأي إستفسار الرجاء ترك تعليقاتكم لأقوم بالإجابة عليها في القريب العاجلدورة [VBScript] الدرس السابع: الكائنات والأصناف ج 8 | ابداع ديزاين abda3 design

لا تقرأ وترحل شارك معنا بتعليق فنحن نسعى لنقدم لك الافضل والاجمل





ضع تعليقك

0 التعليقات:

البحــث

English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified

المتابعون

استثمارا للخبرات العالية والإمكانات التقنية المتميزة والطاقات البشرية الكبيرة التي تتميز بها "ابداع" أنشأت المؤسسة إدارة تتبنى عمل المواقع الخدمية المتنوعة للأفراد والهيئات والمؤسسات الكبرى. كما يمكنها عمل مواقع للتجارة الإلكترونية تتمكن الشركات والمتاجر من ترويج منتجاتها في كافة أنحاء العالم وتزويد مواقعها بإمكانية البيع عبر الإنترنت وتشمل خدمة بناء مواقع الإنترنت عدة مراحل بدأ من عملية التصميم المبدئي للموقع، وحتى الانتهاء منه، والقيام بتحديث الموقع كلما تطلب الأمر كما تتميز مؤسسة "ابداع" بأقوى فريق عمل متواصل مع العملاء 24 ساعة على مدار الأسبوع وتمتاز أيضا بكفاءة الدقة والسرعة في العمل لذلك نحمد الله العلي العظيم على منحنا تلك القدرة