كائنات و فئات في Visual Basic

كائن تركيبة من تعليمات برمجية و بيانات يمكن التعامل معها كوحدة. يمكن أن يكون كائن قطعة من تطبيق ما مثل عنصر تحكم أو نموذج. تطبي بالكاملق يمكن أن يكون كائن.

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

يناقش هذا موضوع الكائنات بالتفصيل.

فئات وكائنات

كل كائن في Visual Basic معرفة بواسطة فئة. فئة تصف متغيرات, الخصائص، إجراءات, وأحداث كائن. الكائنات مثيلات فئات; يمكنك إنشاء العديد من كائنات التي تحتاجها حالما تنتهي من تعريف فئة.

لفهم العلاقة بين كائن و فئته ، فكر قاطعي ملف تعريف ارتباط وملفات تعريف الارتباط. آلة القطع ملف تعريف ارتباط فئة. يعرف الصفات المميزة لكل ملف الارتباط على سبيل المثال الحجم والشكل. فئة مستخدمة في إنشاء الكائنات. الكائنات هي ملفات تعريف الارتباط.

يجب عليك إنشاء كائن قبل أن يمكنك الوصول الى الأعضاء الخاصة به.

لـإنشاء كائن من فئة

  1. تحديد من أي فئة الذي تريد إنشاء كائن.

  2. كتابةعبارة Vsual Basic) Dim) لإنشاء متغير يمكنك تعيين فئة مثيل. يجب أن يكون المتغير من نوع الفئة المطلوب.

    Dim nextCustomer As customer 
    
  3. إضافةعامل تشغيل Visual Basic) New) كلمة أساسية لتهيئة هذا المتغير إلى مثيل جديد من فئة.

    Dim nextCustomer As New customer
    
  4. الآن يمكنك الوصول إلى أعضاء الفئة خلال متغير الكائن.

    nextCustomer.accountNumber = lastAccountNumber + 1
    

ملاحظة

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

مثيلات متعددة

الكائنات التي تم إنشاؤها حديثاً من فئة تكون غالباً متطابقة للأخرى. بمجرد وجودها ككائنات فردية على الرغم من ذلك، متغيرات والخصائص الخاصة بهم يمكن أن تتغير بشكل مستقل عن المثيلات الأخرى. على سبيل المثال، إذا قمت بإضافة خانات فحص الثلاثة إلى نموذج, كل كائن خانة فحص مثيل CheckBox فئة. الفرديةCheckBox الكائنات تشارك بمجموعة شائعة من ميزات وقدرات (الخصائص متغيرات ، الإجراءات و الأحداث) معرفة من قبل فئة. ومع ذلك، كل له الاسم الخاص به, يمكن بشكل منفصل تشغيله وإعادة تعطيله، ثم يمكن وضعه في موقع مختلف في نموذج.

أعضاء كائن

كائن عنصر من أحد التطبيقات يمثل مثيل لفئة. حقول خصائص وأساليب وأحداث هي كائنات كتل الإنشاء و التي تشكل الأعضاء الخاصة بهم.

عضو الوصول

الوصول إلى عضو في كائن بواسطة تحديد الاسم بالترتيب لمتغير كائن فترة (.) ، واسم العضو. يقوم المثال التالي بإعداد Text خاصية Label كائن.

warningLabel.Text = "Data not saved"

قائمة التحسس الذكي من الأعضاء

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

الحقول والخصائص

الحقولو الـخصائص تمثل المعلومات المخزنة في كائن. استرداد وتعيين قيمها مع عبارات التعيين بنفس طريقة استرداد و تعيين المتغيرات المحلية في إجراء. يسترد المثال التاليWidth الخاصية ومجموعات ForeColor خاصية الـ Label كائن.

Dim warningWidth As Integer = warningLabel.Width
warningLabel.ForeColor = System.Drawing.Color.Red

لاحظ أن حقل يسمى أيضاً متغير عضو.

استخدم إجراءات خاصية عند:

  • تحتاج إلى التحكم متى وكيف يتم تعيين القيمة أو استردادها.

  • تحتوي الخاصية على مجموعة من القيم المعرفة بشكل جيد التي تحتاج إلى التحقق من صحتها.

  • إعداد القيمة يؤدي بعض التغيير الحسي في حالة الكائن مثل IsVisible خاصية.

  • تعيين خاصية يؤدي الى تغييرات إلى المتغيرات الداخلي الأخرى أو إلى قيم خصائص أخرى.

  • يجب إجراء مجموعة من الخطوات قبل أن يمكن تعيين هذه خاصية أو استردادها.

استخدام الحقول عند:

  • القيمة من نوع التحقق من الصحة الذاتي. على سبيل المثال، الخطأ أو التحويل التلقائي للبيانات يحدث اذا كانت القيمة غير من True أو False تم تعيينه الى Boolean متغير.

  • أي القيمة في نطاق المعتمدة من قبل نوع بيانات هي صالحة. يكون هذا صحيحاً من العديد من الخصائص نوع Single أو Double.

  • خاصية هي String نوع بيانات و عدم وجود قيد على الحجم أو القيمة للسلسلة.

  • لمزيد من المعلومات، راجع إجراءات الخاصية.

الأساليب

الأسلوب هو إجراء الذي يمكن لكائن تنفيذه. على سبيل المثال، Add طريقة لـ ComboBox كائن الذي يضيف إدخال جديد إلى مربع تحرير وسرد.

يوضح المثال التاليStart أسلوب Timer كائن.

Dim safetyTimer As New System.Windows.Forms.Timer
safetyTimer.Start()

لاحظ أن أسلوب هو ببساطة إجراء التي يتم عرضها بواسطة كائن.

لمزيد من المعلومات، راجع الـإجراءات في Visual Basic.

أحداث

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

يمكنك أيضاً تطوير الأحداث الاصطلاح الخاص بك المرفوع بواسطة الكائنات الخاصة بك ثم معالجتها من قبل كائنات أخرى. لمزيد من المعلومات، راجع الـأحداث (Visual Basic).

أعضاء المثيل و و لاأعضاء المشتركة

عند إنشاء كائن من فئة النتيجة مثيل تلك الفئة. الأعضاء التي لم يتم التصريح عنها مع (Visual Basic) المشترك كلمة أساسية هم الأعضاء المثيل ، والتي تنتمي حصراً إلى ذلك المثيل المعين. يكون عضو مثيل في مثيل واحد مستقل عن نفس العضو في المثيل الآخر من نفس فئة. متغير عضو مثيل على سبيل المثال، يمكن أن يكون لديه قيم مختلفة في مثيلات مختلفة.

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

الوصول إلى الأعضاء الغير مشتركين

للوصول الى عضو غير مشترك لكائن

  1. تأكد من أنه تم إنشاء كائن من فئته وتم تعيينه إلى متغير كائن.

    Dim secondForm As New System.Windows.Forms.Form
    
  2. في العبارة التي تصل إلى العضو تتبع اسم متغير الكائن مع عامل تشغيل وصول عضو (.) ومن ثم اسم العضو.

    secondForm.Show()
    

الوصول إلى الأعضاء المشتركة

للوصول الى عضو مشترك لكائن

  • اتبع اسم الفئة مع عامل تشغيل وصول عضو (.) ومن ثم اسم العضو. يجب دوماً الوصول إلى Shared العضو في كائن مباشرة من خلال اسم الفئة.

    MsgBox("This computer is called " & Environment.MachineName)
    
  • إذا كنت قد قمت بالفعل بإنشاء كائن من فئة, يمكنك في المقابل الوصول إلى Shared عضو من خلال متغير الكائن.

الفروق بين فئات و الوحدات النمطية

يكمن الاختلاف الرئيسي بين الفئات والوحدات النمطية هو أنه يتم إنشاء فئات كـ الكائنات بينما لا يمكن للوحدات النمطية القياسية. لأن هناك نسخة واحدة فقط من بيانات وحدة نمطية قياسية، عندما يغير جزء من البرنامج متغير عام في وحدة نمطية قياسية ، يحصل أي جزء آخر من البرنامج نفس القيمة إذا كان يقوم بقراءة هذا المتغير. وفي المقابل، كائن بيانات موجودة بشكل منفصل لكل كائن منشأ. فرق آخر أنه على عكس الوحدات النمطية القياسية, يمكن للفئات تطبيق الواجهات.

ملاحظة

عندما Shared المعدّل يتم تطبيقه على عضو فئة ، هو مقترن مع الفئة نفسها بدلاً من مثيل خاص من الفئة. يتم الوصول إلى العضو مباشرةً باستخدام اسم الفئة، بنفس الطريقة التي يتم الوصول إلي الأعضاء وحدة نمطية.

فئات والوحدات النمطية أيضاً تقوم باستخدام نطاقات مختلفة لأعضاء الخاصة بهم. الأعضاء المعرفة داخل فئة يتم وضعها في مجال مثيل معين للفئة مع توجد فقط لمدة بقاء الكائن. للوصول إلى أعضاء الفئة من خارج فئة, يجب استخدام أسماء مؤهل بشكل كامل في التنسيق لـ كائن.عضو.

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

إعادة استخدام فئات وكائنات

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

.NET Framework يوفر أمثلة عديدة من المكونات متوفر للاستخدام. يستخدم المثال التالي TimeZone فئة في System مساحة الاسم. TimeZone يوفر الأعضاء التي تسمح لك إلى استرداد معلومات في المنطقة الزمنية في نظام الكمبيوتر الحالي.

Public Sub examineTimeZone()
    Dim tz As System.TimeZone = System.TimeZone.CurrentTimeZone
    Dim s As String = "Current time zone is "
    s &= CStr(tz.GetUtcOffset(Now).Hours) & " hours and "
    s &= CStr(tz.GetUtcOffset(Now).Minutes) & " minutes "
    s &= "different from UTC (coordinated universal time)"
    s &= vbCrLf & "and is currently "
    If tz.IsDaylightSavingTime(Now) = False Then s &= "not "
    s &= "on ""summer time""."
    MsgBox(s)
End Sub

في المثال السابق، أول عبارة Vsual Basic) Dim) يقوم بتعريف متغير كائن من نوع TimeZone يعيّن عليه TimeZone كائن تم إرجاعه بواسطة CurrentTimeZone خاصية.

العلاقات بين الكائنات

الكائنات التي يمكن ربطها مع بعض بعدة طرق. الـأنواع الأساسية من علاقة هي تسلسل هرمي و الاحتواء.

علاقة ذات تسلسل هرمي

عندما يتم اشتقاق الفئات من فئات أساسية أكثر, فإنها تملك علاقة ذات تسلسل هرمي. التسلسلات الهرمية الفئة مفيدة عندما تصف عناصر نوع فرعي لفئة أكثر عمومية.

في المثال التالي، افترض أنك تريد تعريف نوع خاص من Button الذي يتصرف مثل عادي Button ولكن أيضًا يكشف عن أسلوب الذي يعكس الألوان الأمامية والخلفية.

لـتعريف فئة مشتقة من فئة موجودة مسبقاً

  1. استخدم عبارة Visual Basic) Class) لتعريف فئة من حيث تريد إنشاء كائن تحتاجه.

    Public Class reversibleButton

    تأكد من أن كشف End Class يتبع السطر الأخير من التعليمات البرمجية في الفئة. بشكل افتراضي، بيئة التطوير المتكاملة (IDE) تلقائياً تقوم بإنشاء End Class عندما تقوم بإدخال Class العبارة.

  2. اتبعClass الكشف مباشرةً مع يرث الكشف. تعيين فئة من حيث الفئة الجديد مشتقة.

    Inherits System.Windows.Forms.Button

    ترث الفئة الجديدة كل الأعضاء المعرّفة بواسطة الفئة الأساسية.

  3. قم بإضافة تعليمات برمجية الى الأعضاء الإضافيين التي تعرضة الفئة المشتقة. على سبيل المثال، قد تقوم بإضافة reverseColors الأسلوب, و الفئة المشتقة قد تبدو كما يلي:

    Public Class reversibleButton
        Inherits System.Windows.Forms.Button
        Public Sub reverseColors() 
            Dim saveColor As System.Drawing.Color = Me.BackColor
            Me.BackColor = Me.ForeColor
            Me.ForeColor = saveColor
        End Sub
    End Class 
    

    إذا قمت بإنشاء كائن من reversibleButton الفئة، يمكنها الوصول الى كل أعضاء Button الفئة ، بالإضافة الى reverseColors الأسلوب و أي أعضاء آخرين جدد تعريفها في reversibleButton.

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

التحويل البرمجي للتعليمات البرمجية

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

علاقة الاحتواء

طريقة أخرى يمكن ربط الكائنات علاقة الاحتواء. كائنات حاوية تغلف منطقياً الكائنات الأخرى. على سبيل المثال، OperatingSystem كائن يحتوي منطقياً Version كائن فإنها ترجع خلال Version خاصية الخاصة به. لاحظ أن الكائن الحاوي لا يحتوي فعلياً على أي كائن آخر.

المجموعات

نوع معين من كائن الاحتواء يتم تمثيله بواسطة مجموعات. مجموعات عبارة عن مجموعات من الكائنات المشابهة التي يمكن تعدادها. Visual Basic يعتمد بناء الجملة معين في عبارة Visual Basic) For Each...Next) التي تسمح لك بالتكرار خلال عناصر مجموعة. بالإضافة إلى ذلك، مجموعات تسمح غالباً باستخدام Item لاسترداد عناصر حسب الفهرس الخاص بهم أو عن طريق إقرانهم بسلسلة فريد. يمكن أن تكون المجموعات أسهل في الاستخدام من الصفائف لأنها تسمح لك بإضافة عناصر أو إزالتها دون استخدام فهارس. بسبب سهولة استخدامهم مجموعات تستخدم غالباً إلى لتخزين النماذج وعناصر التحكم.

مواضيع ذات صلة