PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ايجاد يك كلاس و استفاده از آن درون برنامه در وبی بی دات نت



sunyboy
10-14-2009, 06:53 PM
با سلام یکی از دوستان ازم خواسته بودند براشون یک برنامه ساده با استفاده از کلاسها بنویسم منم خواستم در اینجا یک توضیحی در مورد کلاسها بدم بعدش یک برنامه ساده را با استفاده از کلاسها در ویژوال بیسک دات نت پیاده سازی کنم تا هم این دوستمان به خواسته اش برسه و همی اینکه اگر کسی در این مورد سوالی داشته باشه بتونه به جواب سوالاتش برسه!


كلاس چيست ؟ كار با آن چگونه است ؟

در ويژوال بيسيك واحد برنامه نويسي كلاس است
شيي ها از اين كلاس ها ايجاد مي گردند
درحالي كه روال ها در درون مرز كلاس كپسوله هستد

كلاس حاوي داده و مجموعه اي از متد هاست

به برنامه نويسي مبتني بر كلاس و شيي برنامه نويسي شيي گرا
يا OBP (Object – Based Programming) مي گويند

براي افزودن يك كلاس به برنامه به روش زير عمل مي كنيم

Project > Add Class…

حال نام كلاس را وارد كرده و دكمه Add‌ را مي زنيم تا كلاس به برنامه ما افزوده شود

در اينجا ما نام كلاس را Num انتخاب ميكنيم

صفحه كلاس باز مي شود كد زير به نمايش در مي آيد









Public Class Num

محل نوشتن روال ها و تعريف متغير ها

End Class



حال مي توانيم متغير ها و روال هاي خود را در محل مشخص شده بنويسيم


تعريف متغيير ها در كلاس

براي تعريف متغيير ها در كلاس به جاي استفاده از كلمه Dim از كلمه هاي Public يا Private استفاده ميكنيم كه معني هر كدام در پايين توضيح داده شده :

Public : متغيير كه با اين كلمه كليدي تعريف ميشود عمومي است و براي همه اشيا قابل دسترسي است البته اگر نيازي به دسترسي ديگر اشيا به اين متغيير وجود ندارد اين كار خطرناك است و نبايد متغيير عمومي تعريف شود

Private : متغيير كه با اين كلمه كليدي تعريف ميشود خصوصي است و فقط براي روال هاي داخل كلاس قابل دسترسي است و شيي از بيرون نمي تواند به اين متغيير ها دستري داشته باشد
معمولا بيشتر متغيير ها Private‌ تعريف مي شوند

پس به 2 حالت زير مي توانيم متغيير ها را تعريف كنيم









Public Number1 As Integer

Private Number1 As Integer





تعريف روال ها در كلاس

تعريف روال ها در كلاس درست به همان شكل عادي تعريف روال است با اين تفاوت كه بايد يكي از 2 كلمه Public يا Private قبل از تعريف روال بياوريم اين كلمات همانند متغيير ها نشان دهنده عمومي يا خصوصي بودن روال ها هستند و روالي
كه با كلمه Public تعريف شود براي تمام اشيا در بيرون از كلاس قابل دسترسي است اما روالي
كه با كلمه Private تعريف شود فقط براي روال هاي درون كلاس قابل دسترسي است

تعريف روال در كلاس به روش Private :










Private Sub Print()

محل نوشتن دستورات روال

End Sub






تعريف روال در كلاس به روش Public :






Public Sub Print()

محل نوشتن دستورات روال
End Sub



ايجاد يك كلاس و استفاده از آن درون برنامه

در اينجا ما يك كلاس با نام Num ايجاد مي كنيم
اين كلاس داراي 2 روال به نام هاي Min و Max است كه Min عدد كوچكتر ميان 2 عدد دريافتي را بر مي گرداند و Max نيز عدد بزرگتر ميان 2 عدد دريافتي را برميگرداند

كد هاي درون كلاس اينگونه هستند :










Public Class Num

Public Function Max(ByVal number1 As Integer, ByVal number2 As Integer)As Integer

If number1 > number2 Then

Return number1

Else

Return number2

End If

End Function

Public Function Min(ByVal number1 As Integer,ByVal number2 As Integer)As Integer

If number1 < number2 Then

Return number1

Else

Return number2

End If

End Function

End Class





حال كلاس ما ايجاد شده و آماده استفاده است اما قبل از استفاده از اين كلاس در برنامه بايد يك شيي از نوع اين كلاس در برنامه ايجاد كنيم
براي ايجاد يك شيي جديد از كلمه New استفاده مي كنیم
در محيط كد نويسي فرم كد زير را مي نويسيم
مانند:







Dim Cnum As New Num



حال Cnum از نوع كلاس نام تعريف شده است و اگر Cnum را بنويسيم و يك نقطه بعد از آن قرار دهيم نام 2 روالي كه درون اين كلاس وجود دارد را مي بينيم
مانند :

http://pnu-club.com/imported/mising.jpg



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

حال برنامه اي مي نويسيم كه دو عدد را دريافت كند و عدد بزرگتر با با استفاده از همين كلاس پيدا كرده و چاپ كند

برنامه داراي 3 TextBox و يك Button است كه TextBox1 و TextBox2 همان 2 عددي هستند كه كاربر وارد ميكند و عدد بزرگتر درون TextBox3 چاپ مي شود

روي Button 2 بار كليك كرده و كد زير را مي نويسيم







Dim Cnum As New Num

TextBox3.Text = Cnum.Max(CInt(TextBox1.Text), CInt(TextBox2.Text))



امیدوارم این آموزش برای دوستمان موثر واقع شده باشه! و دیگر دوستان هم استفاده کرده باشند!




همیشه طرف حق باشید و حق شناس!




با احترام مدیریت باشگاه

SaHaR-A
10-14-2009, 11:43 PM
ممنون اقای مدیر :18:
زحمت کشیدین:8:
اموزش عالی بود
یک هدیه ی ناقابل:281:

sunyboy
10-14-2009, 11:53 PM
ممنون اقای مدیر :18:
زحمت کشیدین:8:
اموزش عالی بود
یک هدیه ی ناقابل:281:
خواهش میکنم خوشحالم که مشکل شما حل شد و بنده هم مفید واقع شدم!
ممنون از هدیه:172:


موفق باشید



همیشه طرف حق باشید و حق شناس!




با احترام مدیریت باشگاه