X
تبلیغات
رایتل
پشم سنگ عایق الاستومری
چهارشنبه 16 اردیبهشت‌ماه سال 1388
توسط: آلفا پک

آموزش ساخت کلاس ها

یک زبان برنامه نویسی شی گرا می باشد . شما کلاسهایی برای ارائه دادن انواع در برنامه تعریف می کنید و VB.NET اشیا را بصورت نمونه هایی از این کلاسها می بسازید.
یک کلاس می تواند حاوی فیلدها، متدها و خواص باشد. این مقاله چگونگی ساخت یک کلاس جدید برای VB.NET در ارائه یک تیم بیسبال را تشریح می کند . در این مقاله، شما فیلدها، متدها و خواصی برای کلاس تعریف خواهید کرد .
سپس یک شی از این نوع کلاس می سازید و از خواص و متدهایش استفاده می کنید.
ساخت یک برنامه کنسول جدیدروی ClassAndObjects با نام Visual Basic Console Application را

اجرا کرده و یک پروژه از نوع VB.NET -١کامپیوتر خودتان بسازید.
٢- پروژه را ذخیره کنید.
ساخت یک کلاس جدید
کلیک کنید. Add Class روی گزینه Project ١- در منوی
کلیک کنید. Open را تایپ کرده و سپس روی BaseballTeam در قسمت نام عبارت Add New Item ٢- در پنجره
٣- در پنجره نمایش کد، کد کلاس جدید را بررسی کنید.
تعریف فیلدها و سازنده ها
بصورت زیر اضافه می کنیم: BaseballTeam به کلاس Private ١- دو فیلد
Private Name As String
Private Stadium As String
دیگر اضافه می کنیم و مقدار پیش فرض اولیه هم بصورت زیر به آنها می دهیم: Private ٢- دو فیلد
Private Wins As Integer=0
Private Defeats As Integer=0
اضافه می کنیم: Stadium و Name برای کلاس به منظور مقدار دهی اولیه Public ٣- یک سازنده
Public Sub New(ByVal Nm As String, ByVal St As String)
Name=Nm
Stadium=St
End Sub
تعریف متدها
بصورت زیر به کلاس اضافه می کنیم: Public ١- یک متد
Public Sub(ByVal RunsFor As Integer, ByVal RunsAgainst As Integer)
If RunsFor>RunsAgainst Then
Wins=Wins+1
Else
Defeats=Defeats+1
End If
End Sub
به ارث می برند. این کلاس توانایی های عمومی Object معمولا از یک کلاس به نام VB.NET ٢- همه کلاسها در
است که نمایش رشته ای از وضعیت کلاس را بر ToString برای همه کلاسها را تعریف می کند . یک مثال متد
به شکل زیر همپوشانی می کنیم: BaseballTeam می گرداند. این متد را برای کلاس
Public Override Function ToString() As String
Return Name & ", Play at " & Stadium & ": " & "W " & Wins & "L " & Defeats
End Function
تعریف همپوشانی متدها
از همپوشانی متدها پشتیبانی می کند. متدهای همپوشانی شده متدهایی هستند که همان نام را VB.NET -١
بصورت زیر تعریف می کنیم: BaseballTeam در کلاس Enum دارند ولی با امضای متفاوت. یک
Public Enum Result
Win
Lose
End Enum
که نتیجه یک بازی را بصورت پارامتر بگیرد، متد PlayGame ٢- برای تعریف یک نسخه همپوشانی شده از متد
را بصورت زیر بازنویسی می کنیم: PlayGame
Public Sub PlayGame(ByVal Res As Result)
If Res=Result.Win Then
Wins=Wins+1
Else
Defeats=Defeats+1
End If
End Sub
تعریف خواص
بصورت زیر تعریف می کنیم: Record ١- یک خاصیت فقط خواندنی (فقط خواندنی) به نام
Public ReadOnly Property() As Double
Get
Dim Played As Integer=Wins+Defeats
Return CType(Wins/Played, Double)
End Get
End Property
رکورد بازی تیم بیسبال را بر می گرداند. (برای مثال، اگر تیم ١٠ بازی را برده و ١٠ بازی را باخته باشد رکورد آن Get متد
0.5 است).
تیمهای بیسبال هم خوانده و هم تغییر داده شود، یک خاصیت Stadium ٢- برای اینکه اجازه دهیم فیلد
را بصورت زیر اضافه می کنیم: BallPark خواندنی/نوشتنی به نام
Public Property BallPark() As String
Get
Return Stadium
End Get
Set(ByVal Value As String)
Stadium=Value
End Set
End Property
ساخت و استفاده از یک شی
را در پنجره کد نمایش دهید. Module1.vb ١- کد
استفاده می کنیم . مرجع شی را به یک BaseballTeam برای ساخت یک شی New از عملگر ،Main ٢- در متد
انتصاب می دهیم: BaseballTeam متغیر محلی از نوع
Dim sf As BaseballTeam=New BaseballTeam("San Francisco Giants", "Candlestick Park")
٣- کد زیر را برای بررسی متد های
Sf.PlayGame(7,2)
Sf.PlayGame(BaseballTeam.Result.Lose)
۴- دستورات زیر را برای کار کردن با خواص شی اضافه کنید:
Console.Out.WriteLine("Record: " & sf.Record)
Sf.BallPark="3Com Park"
۵- وضعیت جاری شی را بصورت زیر نمایش می دهیم:
Console.Out.WriteLine(sf.ToString())
قرار دهید . این کار شی را برای Nothing را نیاز نداشتید مرجع آن را برابر BaseballTeam ۶- وقتی که شی
ندارد). Delete عملگر VB.NET در دسترس قرار می دهد. (توجه کنید که Garbage Collection
Sf=Nothing
بررسی عملکرد آن
١- برنامه را کمپایل کرده و اجرا کنید.
را کلیک کنید. Start without Debugging گزینه Debug ٢- در منوی
٣- دقت کنید که برنامه اطلاعات زیر را در کنول نمایش می دهد:
Record: 0.5
San Francisco Giants, Play at 3Com Park : W1 L1 

منبع:http://www.p2p.dotnetsource.com/default.aspx?g=posts&t=7765