الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دورة OOP VB.NET 2005

مغلق
بدأه MostafaAlpha في 8 مايو 2007 · 34 رد · 10,001 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

إن شاء الله حكلم فى موضوع هام جدا الى كل مبرمج فيجول بيسك 2005 هوا موضع

OOP VB.NET 2005

موضعنا سوف نتحدث فيه عن الاشياء الاتيه

1- مقدمة

2- كيفية الاعلان عن الـــ (Class)

3-قابلية الروية الــــ(Class)

4-كيفية استخدام الـــ(Class) الذى تم الاعلان عنه

5- الاعلان عن الــ (Class) باستخدام الكلمة (New)

6-صورة الاعلان عن اجراءات فرعية داخل الـــ (Class)

7- صورة الاعلان عن المتغيرات داخل (Class)

8-امكانية الاعلان عن منتغير من نوع (Static)

9- أعادة الاعلان عن نفس الاجراء Overloading

10-المشيدات

11-تمرير معاملات الى المشيدات

12-كيفية الاعلان عن اكثر من مشيد

13- النداء على مشيد من داخل مشيد اخر

14- تمرير قيمة الى متغير للقراءة فقط من خلال المشيدات

15-الخصائص Properties

16- الاحداث Events

17- بعض الكلمات التى تخص الكائنات

18- الاعضاء المشتركة

19- الوراثة Inheritance

20- مثال على الورائة

21- وراثة الاعضاء العادية

22- الورائة فى حالة الاعضاء الخاصة

23- المشيدات فى حالة الوراثة

24-التعامل مع الكائنات

25- اعادة القيادة Overriding

26- تعدد الاوجه Interfaces - Polymorphism

ده إن شاء الله تكون موضوعات دورتنا و ربنا يعنى على اكمال الدوره الى الاخر

وربنا يعنكم على استيعاب الدوره

#2

بسم الله نبداء على بركة الله

المقدمة

برمجة الكائنات هى شئ مهم جدا فى حياة كل مبرمج لان البرمجة من هذا النوع توفر على كل مبرمج تصنيع ادوات خاصه به لتسهيل عمليه معينه ممكن ان يعد التفكير فيها و اعداه كتابتها .

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

برمجة الكائنات او OOP تعبر مثل انك تصنع اده ممكن تستخددمها و تبعها كمان زى اه مثلا زى ادوات النجاره لو النجار صنع شاكوش او مفك او منشار ده تعتبر ادوات تسهل عليه العمل مع الخشب كذلك المبرمج يصنع كائن يستخدمه فى برمجة مختلفه مع اختلاف وظائف هذا الكائن بطبيعة وظيفته .

#3

2- كيفية الاعلان عن الــــــ (Class

)

يمكننا ان نقوم بتحويل هذا التركيب الفئة Class

يمكننا ان نقوم بتحويل هذا التركيب الى فئة ( Class ) ويكون الاعلان باستخدام كلمة Class بدلا من Structure كما نرى فى الصورة

وتتشابه الفئات مع التركيبات فى انه لا يمكن الاعلان عنها داخل اى اجراء فرعى بل كما نرى فى الصورة يتم الاعلان عنها فى المنطقة العامة للوحدة البرمجية

post-75230-1178625484_thumb.jpg

post-75230-1178625731_thumb.jpg

post-75230-1178626048_thumb.jpg

#4

ملاحظة بسيطة :

انت هنا انشأت Module و ليس Class لأن ال Class وضعته داخل ال Module لكن الأمر الطبيعيي هو انه يجب ان تنشأ Class كوحدة و اذا اردت ان تجمع عدة كلاسات ضمن وحدة واحدة فيمكنك استعمال NameSpace فقط هذه امور يجب مراعاتها لكي تستفيد من كل مزايا الدوت نت

و هذا مثال بسيط :

Namespace ss
	Class s
		Dim Name As String
		Dim age As Integer
		Sub New()
			Name = "ayoub"
			age = 23
		End Sub
		Public Property The_Name() As String
			Get
				Return Name
			End Get
			Set(ByVal value As String)
				Name = value
			End Set
		End Property
	End Class
End Namespace

يمكنك الآن مناداة الكلاس بطريقة متطورة قليلا او بمعنى بطريقة الدوت نت و هي كالتالي :

Imports WindowsApplication1.ss
Public Class Form1
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
		Dim s As New s
		MsgBox(s.The_Name)
	End Sub
End Class

تم تعديل هذه المشاركة بواسطة Ayoub JAMAL EL IDRISSI في 8 مايو 2007 في 15:33

#5

3- قابلية الرؤية للـــ Class

عمدما نقوم بتحديد نوا الـــ Class الذى تم الاعلان عنه فانه يعتبر افتراضيا Friend مثل الذى قمنا بانشائه فى الصور السابقة اى يمكن رؤيته من داخل المشروع الحالى فقط ولا يمكن رؤيته من اى مشروع اخر نهائيا فمثلا اذا تم ادراج Class من هذا النوع Friend باحد المكتبات فانه يصحب جدا الوصول اليه من خلال هذه المكتبة .

و يمكننا الاعلان عن الـــ Class فى صورة Public اى تتم رؤيته هذه الفئة داخل المشروع الحالى ومن خاجه ايضا اى اذا تم ادراجه فى مكتبه مثلا فانه يمكن الوصول الى هذا الـــ Class من خلال هذه المكتبة .

ويمكن الاعلان عن الــــ Class فى صورة Private اى لاتتم رؤيته إلى داخل الـــ Class الذى تم الاعلان عنه بداخله او بداخل الوحدة البرمجية التى تم الاعلان عنه بداخله .

اى لا يمكن استخدام الكلمة Private عند الاعلان عن Class الا اذا كان هذا الـــ Class داخل Class اخر او داخل وحدة برمجية اخرى لنرى ذللك من خلال الصورة التالية :-

و للنداء على هذا الـــ Class او الوصل له من داخل الوحدة البرمجية نفسها نكتب كما فى الصوره

وكده استطعنا الوصول الى الــــ Class من نوع Private داخل الوحدة البرمجية التى انشاة بداخلها .

اشكرك يا اخ Crazy-Man على استكمال الرئ مع داخل الدوره هذه هوا المطلوب التفاعل داخل المنتدى

ونستكمل الحديث غدا إن شاء الله الموافقه 9/5/2007

-waf

post-75230-1178627349_thumb.jpg

post-75230-1178628130_thumb.jpg

تم تعديل هذه المشاركة بواسطة MostafaAlpha في 8 مايو 2007 في 15:50

#6

السلام عليكم ورحمة الله وبركاته

الف مليون شكر اخ مصطفى

والى مزيد من العطاء ,,,,

شرح جميل بارك الله فيك ,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#8

بارك الله فيك أخي الكريم على شرحك هذا ....

ان شاء الاخوة يستفيدووا منه بشكل ممتاز ...

ونحن ان شاء الله سنكون على تواصل معك

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

#10

بسم الله نبداء فى اليوم الثانى من دوررتنا

عدنا بعد الفاصل :D

كيفية استخدام الــــ Class الذى تم الاعلان عنه

ولاستخدام هذه الفئة نجد التشابه بنها وبين التركيبات حيث يجب الاعلان عن متغير يشير الى نسخة من هذه الفئة فى الذاكرة حتى يمكننا التعامل معها كما فى الصورة .

نجد ان المتغير الذى تم الاعلان عنه تحول الى كائن خاص بذاته يشير الى نسخة من Class الذى تم الاعلان عنه وهو الــــ Class Mostafa_Alpha

اى ان هذا المتغير يشير الى الكائن فى الذاكرة وليس احتضان نسخة كاملة من هذا الكائن ونرى ذلك كما بالصورة التالية قبل الذهاب الى الصورة لاحظ معى المتغيرات التى تم الاعلان عنها داخل الفئة Class Mostafa_Alpha نجد انه تم الاعلان عن المتغير Name على انه عام بينما المتغير Age على انه خاص لنرى اذا الصورة : -

post-75230-1178697638_thumb.jpg

post-75230-1178698167_thumb.jpg

#11

الاعلان عن الـــ Class باستخدام الكلمة New

للوصول الى المتغيرات الموجودة داخل الفئة عند تخذ نسخة منها علينا الاعلان عنها فى صورة عامة Public وليس فى صورة خاصة Dim ونجد انه يمكننا تمرير اية قيم الى المتغيرات العامة داخل الفئة Class كما راينا فى الصورة السابقة ايضا لاحظ فى الصورة السابقة تم الاعلان باستخدام الكلمة New كما بالصورة

ما الذى يعنيه هذا الاعلان ؟

تم اخذ نسخة كاملة من الفئة ووضعها فى الذاكرة وذا الردنا ان نرى الموضوع بصورته الطبيعية داخل الذاكرة حيث تنقسم الذاكرة الى قسمين هما

Heap - Stack

والصورة التاليه توضح الذاكرة المحجوز فيها الكائن السابق Mostafa_Alpha

ونجد انه تم انشاء المتغير فى الذاكرة ومساحته لا تتعدى 4 بايت ويشير الى الـــــ Class الذى تم اخذ نسخة منه وهو Class Mostafa_Alpha

وبالتالى يوجد لدينا امران هما :-

Object و الذى يتم التعامل مه لارسال واستقبال القيم التى يتم الاعلان عنها و هوا عبارة عن المتغير الذى تم الاعلان عنه .

Instance وهى النسخة من الفئة Class التى نريد ارسال القيم اليها .

بينما اذا تم الاعلان عن المتغير بالصورة التالية :-

فان الذى يحدث فى الذاكرة هو مايلى :-

تم انشاء Object فقط ولم يتم عمل Instance وبالتالى يجب علينا التركيز فى هذه الجزئية جيدا متى نقوم بانشاء Instance للفئة و متى لا نقوم بانشاء هذه النسخة ......... بالطبع سنقوم بانشاء النسخة اذا اردنا تمرير بعض القيم الى المعاملات الخاصة بالفئة .

post-75230-1178698634_thumb.jpg

post-75230-1178699625_thumb.jpg

post-75230-1178700757_thumb.jpg

post-75230-1178700934_thumb.jpg

#12

مثال على كيفية الاعلان عن الــــ Class باخذ نسخة منة

وبالطبع ظهرت القيمة .... حيث تم تمرير القيمة الخاصة بالمتغير اليه و حفظها بداخله وساعدنا فى ذلك اننا قمنا بالاعرن عن الـــــ Class باستخدام الكلمة New

وبالتالى توجد لدينا نسخة من هذا الــــ Class فى الذاكرة الخاصة بالجهاز Managed Heap وهذ يعنى وجود جميع المتغيرات التى تم الاعلان عنها بداخل الــــــ Class بصورة عامة .

نستكمل غدا موضعنا الموافق 10/5/2007 برجاء لو فى اى استفسار نقوله قبل اما ادخل فى الموضوع التالى

post-75230-1178702003_thumb.jpg

#14

جزاك الله خير يا مصطفى وسأكون من المتابعين معك

واتمنى ان تكمل الى النهايه

وفالك الجنه

#15

موضوع جميل وإن شاء الله هتابعه بعد ما اخلص امتحاناتى

#16

بسم الله وعلى بركة الله نستكمل موضعنا

عدنا بعد الفاصل :D

المنتلق الفكرى فى تطفيش الست ده لازم ينبع من احساس منعكس اتجاه قضايا معاصره المكسور فيها دراع مورسى ههههههههههههههههههههههههههههههههههه :lol:

انا بحب العابر ده جدا بتاعت عادل امام هههههههههههههههههههههههههه :)

نرجع الى موضعنا تانى ههههههههههههههههه :lol:

صور الاعلان عن اجراءات فرعية داخل الـــــ Class

الفئة مثل التركيب يمكننا انشاء اجراءات فرعية بداخلها كما يلى فى الصورة

انظر معى الى الشكل السابق نجد انه بمجرد اخذ نسخة من الــــ Class واردنا التعامل معها لم نتمكن من الوصول الى الاجراء الفرعى الذى قمنا بانشائة و السبب فى ذلك انه عند الاعلان عن الاجراءات الفرعية يكون باحد طريقتين هما : -

الاولى :- الاعلان عن الاجراء الفرعى فى صورة خاصة كما بالصورة السابقة : -

وفى هذه الحالة لن تتم رؤية الاجراء الفرعى داخل الــ Class الذى قمنا بالاعلان عنه ولن نراه اذا اخذنا نسخة من هذا الـــ Class وهذا قد شهدناه فى الصورة السابقة .

الثانية : - الاعلان عن الاجراء الفرعى فى صورة عامة : -

وفى هذه الحالة تتم رؤية الاجراء الفرعى من خلال الكلاس عندما نقوم باخذ نسخة منه ونرى ذلك من خلال الصورة التالية : -

post-75230-1178802496_thumb.jpg

post-75230-1178803098_thumb.jpg

#17

صورة الاعلان عن المتغيرات داخل الــــ Class

كما راينا الاعلان عن الاجراءات الفرعية فان الاعلان عن المتغيرات له بعض مميزاته هو الاخر حيث اننا تعرضنا للاعلان عن المتغيرات فى التركيب فى المحاضرة السابقة و لم نستطيع تمرير اية قيم لهذا المتغيرات وقت الاعلان عنها الاانه عند الاعلان عن هذه المتغيرات داخل الـــ Claas فانه يمكننا تمرير قيم لهذه المتغيرات وقت الاعلان عنها كما يلى فى الصورة : -

الا انه هذا المتغير بهذه الصورة يمكننا تغيير قيمته التى تم تمريرها اليه وقت الاعلان عنه لاحظ معى الصورة التالية : -

طيب ماذا لو اردنا الاعلان عن متغير مع تمرير قيمة ولا يمكننا تغيير قيمته فى داخل المشروع لاحظ مع الصورة التالية : -

وبالتالى لا يمكن تمرير قيم الى المتغيرات باستخدام الكملة المحجوزة ReadOnly مهما كان وبالتالى يمكننا حفظ قيم المتغيرات بهذه الطريقة .

وهذا لا يمنع ابد قدرتنا على قراءة قيم هذا المتغيرات حيث يمكننا قراءة قيم هذه المتغيرات كما بالصورة التالية : -

وهذا كان موضع انهردنا نستكمل غدا إن شاء الله

وزى ما بيقوله فى التليفزيون فاصل و نواصل ههههههههههههههههههههههههههه إن شاء الله غدا الموافق 11/5/2007

post-75230-1178804319_thumb.jpg

post-75230-1178804860_thumb.jpg

post-75230-1178805522_thumb.jpg

post-75230-1178806314_thumb.jpg

#18

إن شاء الله فى اخر الدوره عندى ليكم هدية تحفه من اختراعى مكتبه تسهل التعامل مع ADO.NET 2

يعنى الاكواد الكتير فى ADO.NET 2 انساها خلاص حخليكم تصنعو مشروع فى خلال 5 الى 8 سطور تقريبا فى تصنيع برنامج اه رايكم فى المفاجاء ده

ياجماعا انا عملت المكتبه ده على شئ درست OOP.NET 2005 كويس جدا واصلا كنت عامل مكتبه برده ايام VB6 تتعامل مع المنفذ المتوازى انا عوزكم

كلمك تحلو مشكلمك نهائيا إن شاء الله لان اصبح انتا البتطور نفسك و مش منتظر التطوير من غيرك يعلم الله هذه الدوره الى وجه الله انا ولا اعرف واحد فيكم

على شئ اتمنظر عليه بكلامى انا فعلا عاوز الناس كلها تتعلم على شئ ربنا من ضمن الاسئله البيسئله الى عباده السؤال عن العلم فيما نفع الناس به

و السلام عليكم ورحمت الله

تم تعديل هذه المشاركة بواسطة MostafaAlpha في 10 مايو 2007 في 17:49

#19

مشكور جداً على الدروس القيمة هذه

وللإستزادة حول موضوع الـ OOP بشكل عام راجع الرابط .

كتاب يتحدث عن الـ OOP .

#20

متشكر يا اخ ابراهيم بخش على تعاونك معنا فى الدوره انا سعيد جدا ان فى ناس بتسعاد فى الدوره وزى ما بنقول فى علم الرياضة

و هوا المطلوب ازباته

#21

بسم الله وعلى بركت الله نستكمل موضعنا

عدنا بعدا الفاصل ههههههههههههههههههههههههههههههههههههههههههههههههه

امكانية الاعلان عن متغير من نوع Static

يوجد اختلاف جوهرى بين التركيب Structure و الفئات Classes فى انه يمكننا الاعلان عن متغير من نوع Static داخل احد الاجراءت الفرعية الموجودة داخل الـــ Class كما بالصورة التالية : -

بمجرد النقر مرتيت متتاليتين على نوع الخطاء يتوجه المؤشر الى التركيب Structure ويقف عند بداية الاعلان عن المتغير من نوع Static زعليه فان الـــ Class وحده هو الذى يمكننا الاعلان من خلاله عن متغير من نوع Static وكنا قد تعرضنا لمثل هذا النوع من المتغيرات فى الايام السابقه من دورتنا .

post-75230-1178889052_thumb.jpg

#22

سوف ندخل فى موضع هام جدا من اجزاء VB.NET OOP 2005 هذا الجزء اسمه

اعادة الاعلان عن نفس الاجراء Overloading

اولا عاوز اعرف بعنى اه الكلام ده :-

ما الذى يعنيه هذا التعريف بعنى انه يمكن الاعلان عن اكثر من اجراء بنفس الاسم الا نه توجد مجموعة شروط نتعرض لها كما يلى : -

1- اختلاف عدد المعاملات الخاصة بالاجراء : - لاحظ معى الصورة التالية :-

اذا نظرنا الى الصورة السابقة نجد مايلى :-

1- تم الاعلان عن اجراء فرعى باسم Show ولم نقم بتمرير اية معاملات اليه اى عند النداء على هذا الاجراء يتم كتابة اسمه فقط .

2- تم الاعلان عن اجراء فرعى اخر بنفس اسم الاجراءالفرعى الاول Show الا اننا قمنا بتمرير معامل لهذا الاجراء اى عند النداء على هذا الاجراء يجب تمرير قيمة لهذا المعامل .

عند النداء على هذين الاجرائين ما الذى يحدث : -

بالطبع للنداء على اى اجراء يتم كتابة اسم هذا الاجراء واذا كان لهذا الاجراء معاملات يتم كتابة قيم لهذه المعاملات ,,,

فكيف يتم التعامل فى حالتنا هذه ؟

1- يتم النداء بالفعل على الاجراء فاذا لم يتم تمرير اية معاملات له فهذا يعنى اننا نريد تنفيذ الاجراء الاجراء الاول .

2- اما اذاتم تمرير قيمة للمعامل الخاص بهذا الاجراء فهذا يعنى اننا نريد تنفيذ الاجراء الثانى .

وسيقوم مترجم اللغة من تلقاء نفسه بتنفيذ الاجراء الذى تنطبق عليه شروط النداء .

post-75230-1178892101_thumb.jpg

تم تعديل هذه المشاركة بواسطة MostafaAlpha في 11 مايو 2007 في 17:17

#23

الاخ

MostafaAlpha

أشكرك على اسلوبك الشيق في طرح مثل هذا الموضوع المهم

#24

اشكرك على الدرس ، كما أن الدرس مدعوم بالصور فهذا مجهود يستحق الاعجاب ..

واحب أن أشارك بإرفاق كتاب متخصص في OOP VB.Net رفعته خصيصا لاحبابنا في المنتدى ،،

اسم الكتاب : Microsoft, OOP With Microsoft Visual Basic.NET And Visual C# Step By Step

النوع : أكروبات .

رابط التحميل : http://www.filesend.net/download.php?f=a7a...94293832785ab48

والله الموفق ..

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

هذا الموضوع مغلق.

مواضيع مشابهة