وقت بخیر دوستان، با آموزش برنامه نویسی (Visual Basic.NET (VB.NET از وب سایت پی وی لرن همراه هستیم. در بخش قبل از مباحث بررسی اشیاء و کلاس ها در VB.NET با تعریف کلاس و توابع عضو و کپسوله سازی آشنا شدیم. در این بخش نیز این مبحث را ادامه خواهیم داد و مفهوم سازنده و مخرب در VB.Net را به همراه اعضای Shared یک کلاس VB.Net خواهیم داشت.
در ادامه مفهوم سازنده و مخرب در VB.Net خواهیم داشت.
کلاس سازنده عضو ویژه ای از Sub کلاس است که هر وقت اشیاء جدیدی از آن کلاس ایجاد می کنیم اجرا می شود. سازنده نام جدید (New) دارد و هیچ نوع برگشتی ندارد.
برنامه زیر مفهوم سازنده را توضیح می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Live Demo Class Line Private length As Double ' Length of a line Public Sub New() 'constructor Console.WriteLine("Object is being created") End Sub Public Sub setLength(ByVal len As Double) length = len End Sub Public Function getLength() As Double Return length End Function Shared Sub Main() Dim line As Line = New Line() 'set line length line.setLength(6.0) Console.WriteLine("Length of line : {0}", line.getLength()) Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 2 | Object is being created Length of line : 6 |
یک سازنده پیش فرض هیچ پارامتری ندارد ، اما در صورت نیاز یک سازنده می تواند پارامترهایی داشته باشد. چنین سازنده هایی، سازندگان پارامتری گفته می شوند. این روش به شما کمک می کند تا مقدار اولیه را در زمان ایجاد آن به یک شی اختصاص دهید ، همان طور که در مثال زیر نشان داده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Live Demo Class Line Private length As Double ' Length of a line Public Sub New(ByVal len As Double) 'parameterised constructor Console.WriteLine("Object is being created, length = {0}", len) length = len End Sub Public Sub setLength(ByVal len As Double) length = len End Sub Public Function getLength() As Double Return length End Function Shared Sub Main() Dim line As Line = New Line(10.0) Console.WriteLine("Length of line set by constructor : {0}", line.getLength()) 'set line length line.setLength(6.0) Console.WriteLine("Length of line set by setLength : {0}", line.getLength()) Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 2 3 | Object is being created, length = 10 Length of line set by constructor : 10 Length of line set by setLength : 6 |
یک مخرب عضو ویژه Sub کلاس است که هر زمان که یک شیء از کلاسش خارج شود ، اجرا می شود.
یک مخرب نام Finalize را دارد و نه می تواند مقدار را برگرداند و نه می تواند پارامترهایی را به خود اختصاص دهد. مخرب می تواند برای انتشار منابع قبل از بیرون آمدن از برنامه مانند بستن فایل ها ، انتشار حافظه و غیره بسیار مفید باشد.
مخرب ها نمی توانند به ارث برده و یا اضافه بار شوند.
مثال زیر مفهوم مخرب را توضیح می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Class Line Private length As Double ' Length of a line Public Sub New() 'parameterised constructor Console.WriteLine("Object is being created") End Sub Protected Overrides Sub Finalize() ' destructor Console.WriteLine("Object is being deleted") End Sub Public Sub setLength(ByVal len As Double) length = len End Sub Public Function getLength() As Double Return length End Function Shared Sub Main() Dim line As Line = New Line() 'set line length line.setLength(6.0) Console.WriteLine("Length of line : {0}", line.getLength()) Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 2 3 | Object is being created Length of line : 6 Object is being deleted |
ما می توانیم با استفاده از کلید واژه Shared اعضای کلاس را به صورت ایستا تعریف کنیم. هنگامی که ما یک عضو یک کلاس را به عنوان Shared اعلام می کنیم ، به این معنااست که مهم نیست که چه تعداد از اشیاء کلاس ایجاد می شود ، فقط یک نسخه از عضو وجود دارد.
کلمه کلیدی Shared به این معنی است که فقط یک نمونه از اعضا برای یک کلاس وجود دارد. از متغیرهای Shared برای تعریف ثابت ها استفاده می شود زیرا مقادیر آن ها با استفاده از کلاس بدون ایجاد نمونه ای از آن ، می توانند بازیابی شوند.
متغیرهای Shared را می توان در خارج از تابع عضو یا تعریف کلاس معرفی کرد. همچنین می توانید متغیرهای Shared را در تعریف کلاس تنظیم کنید.
همچنین می توانید یک تابع عضو را به عنوان Shared اعلام کنید. چنین توابعی فقط به متغیرهای Shared دسترسی دارند. توابع Shared حتی قبل از ایجاد شی وجود دارد.
مثال زیر استفاده از اعضای Shared را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Live Demo Class StaticVar Public Shared num As Integer Public Sub count() num = num + 1 End Sub Public Shared Function getNum() As Integer Return num End Function Shared Sub Main() Dim s As StaticVar = New StaticVar() s.count() s.count() s.count() Console.WriteLine("Value of variable num: {0}", StaticVar.getNum()) Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 | Value of variable num: 3 |
مفهوم سازنده و مخرب در VB.Net را به همراه اعضای Shared یک کلاس VB.Net ، در این بخش از بررسی اشیاء و کلاس ها در VB.NET و آموزش VB.NET مورد بررسی قرار دادیم. در بخش بعدی نیز این مبحث را ادامه خواهیم داد و در مورد کلاس های پایه و مشتق شده ، وراثت و مقدار دهی اولیه صحبت خواهیم نمود. با ادامه ی آموزش ها از وب سایت پی وی لرن همراه باشید.