PDA

View Full Version : چگونگی ساخت کلاس و اشیا در VB.NET



Voldemort
سه شنبه 26 خرداد 1383, 18:42 عصر
مقدمه

VB.NET یک زبان برنامه نویسی شی گرا می باشد. شما کلاسهایی برای ارائه دادن انواع در برنامه تعریف می کنید و اشیا را بصورت نمونه هایی از این کلاسها می بسازید.

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

ساخت یک برنامه کنسول جدید

1- VB.NET را اجرا کرده و یک پروژه از نوع Visual Basic Console Application با نام ClassAndObjects روی کامپیوتر خودتان بسازید.
2- پروژه را ذخیره کنید.

ساخت یک کلاس جدید

1- در منوی Project روی گزینه Add Class کلیک کنید.
2- در پنجره Add New Item در قسمت نام عبارت BaseballTeam را تایپ کرده و سپس روی Open کلیک کنید.
3- در پنجره نمایش کد، کد کلاس جدید را بررسی کنید.

تعریف فیلدها و سازنده ها

1- دو فیلد Private به کلاس BaseballTeam بصورت زیر اضافه می کنیم:


Private Name As String
Private Stadium As String

2- دو فیلد Private دیگر اضافه می کنیم و مقدار پیش فرض اولیه هم بصورت زیر به آنها می دهیم:


Private Wins As Integer=0
Private Defeats As Integer=0
3- یک سازنده Public برای کلاس به منظور مقدار دهی اولیه Name و Stadium اضافه می کنیم:


Public Sub New(ByVal Nm As String, ByVal St As String)
Name=Nm
Stadium=St
End Sub
تعریف متدها

1- یک متد 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
2- همه کلاسها در VB.NET معمولا از یک کلاس به نام Object به ارث می برند. این کلاس توانایی های عمومی برای همه کلاسها را تعریف می کند. یک مثال متد ToString است که نمایش رشته ای از وضعیت کلاس را بر می گرداند. این متد را برای کلاس BaseballTeam به شکل زیر همپوشانی می کنیم:


Public Override Function ToString() As String
Return Name & ", Play at " & Stadium & ": " & "W " & Wins & "L " & Defeats
End Function
تعریف همپوشانی متدها

1- VB.NET از همپوشانی متدها پشتیبانی می کند. متدهای همپوشانی شده متدهایی هستند که همان نام را دارند ولی با امضای متفاوت. یک Enum در کلاس BaseballTeam بصورت زیر تعریف می کنیم:


Public Enum Result
Win
Lose
End Enum

2- برای تعریف یک نسخه همپوشانی شده از متد 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

تعریف خواص

1- یک خاصیت فقط خواندنی (فقط خواندنی) به نام Record بصورت زیر تعریف می کنیم:


Public ReadOnly Property() As Double
Get
Dim Played As Integer=Wins+Defeats

Return CType(Wins/Played, Double)
End Get
End Property

متد Get رکورد بازی تیم بیسبال را بر می گرداند. (برای مثال، اگر تیم 10 بازی را برده و 10 بازی را باخته باشد رکورد آن 0.5 است).

2- برای اینکه اجازه دهیم فیلد Stadium تیمهای بیسبال هم خوانده و هم تغییر داده شود، یک خاصیت خواندنی/نوشتنی به نام BallPark را بصورت زیر اضافه می کنیم:


Public Property BallPark() As String
Get
Return Stadium
End Get

Set(ByVal Value As String)
Stadium=Value
End Set
End Property
ساخت و استفاده از یک شی

1- کد Module1.vb را در پنجره کد نمایش دهید.
2- در متد Main، از عملگر New برای ساخت یک شی BaseballTeam استفاده می کنیم. مرجع شی را به یک متغیر محلی از نوع BaseballTeam انتصاب می دهیم:


Dim sf As BaseballTeam=New BaseballTeam("San Francisco Giants", "Candlestick Park")
3- کد زیر را برای بررسی متد های Public در یک شی اضافه کنید:


Sf.PlayGame(7,2)
Sf.PlayGame(BaseballTeam.Result.Lose)
4- دستورات زیر را برای کار کردن با خواص شی اضافه کنید:


Console.Out.WriteLine("Record: " & sf.Record)
Sf.BallPark="3Com Park"

5- وضعیت جاری شی را بصورت زیر نمایش می دهیم:


Console.Out.WriteLine(sf.ToString())
6- وقتی که شی BaseballTeam را نیاز نداشتید مرجع آن را برابر Nothing قرار دهید. این کار شی را برای Garbage Collection در دسترس قرار می دهد. (توجه کنید که VB.NET عملگر Delete ندارد).


Sf=Nothing

بررسی عملکرد آن

1- برنامه را کمپایل کرده و اجرا کنید.
2- در منوی Debug گزینه Start without Debugging را کلیک کنید.
3- دقت کنید که برنامه اطلاعات زیر را در کنول نمایش می دهد:


Record: 0.5
San Francisco Giants, Play at 3Com Park : W1 L1


منبع:سایت مایکروسافت

vbapr2005
دوشنبه 14 آذر 1384, 15:07 عصر
خیلی ممنون اینو نوشتم که این مقاله رو بقیه هم بخونن. واقعا سرچ عجب چیز خوبیه.

ms_vb1987
سه شنبه 18 مرداد 1390, 14:03 عصر
(توجه کنید که VB.NET عملگر Delete ندارد).


Sf=Nothing



سلام
دارد
بعد از sf=nothing کد زیر را بنویسید:
System.GC.Collect()
این دستور حافظه اشغال شده را آزاد می کند