برنامه نویسی شی گرا در VBScript

در این قسمت قصد دارم طریقه ی برنامه نویسی شی گرا را در VBScript آموزش دهم.
برای ایجاد کلاس در VBScript، از کلمه ی کلیدی Class استفاده می کنیم. برای پایان تعریف هم از End Class استفاده می کنیم:

Class Car

  '...

End Class

کد فوق، بدنه ی کلاسی به نام Car را ایجاد می کند.

در داخل بدنه ی کلاس می توانیم متد ها و خصوصیات کلاس را با کلمات کلیدی Private و Public تعریف کنیم:

Class Car
  Public Color
  Public CurrentSpeed
End Class

به این ترتیب یک کلاس به نام Car ایجاد کردیم که دارای دو تا خصوصیت Color و CurrentSpeed است. همین الان کلاس ما کامل است. می توانیم از روی کلاس یک نمونه (شی) بسازیم:

Dim ObjMyCar
Set ObjMyCar = New Car
ObjMyCar.Color = "Blue"

همان طور که می بینید، برای ساختن یک شی (یک نمونه از روی کلاس)، کافی است از دستور Set و کلمه ی کلیدی New استفاده کنیم. در کد بالا، یک شی به نام ObjMyCar از نوع کلاس Car ایجاد می شود.
برای مقدار دادن به خصوصیات کلاس هم کافی است نام کلاس را با نقطه استفاده کنیم. درست مثل C++ و ویژوال بیسیک و خیلی زبان های دیگر

ساختن کلاس داراس متد

متد ها در واقع کار هایی هستند که یک کلاس می تواند انجام دهد. برای ایجاد متد در کلاس کافی است که تعریف متد را در درون کلاس بیاوریم:

Class Human
  Private name
  Private age
  Public Sub Speek
    MsgBox "I am a human. My name is " & name & ". And I am " & age & " years old!"
  End Sub
  Private Sub Class_Initialize()
    name = "John"
    age = 25
  End Sub
End Class
Dim test
Set test = New Human
test.Speek

در برنامه ی بالا یک کلاس جدید به نام Human (انسان) ایجاد کردیم که دارای دو تا خصوصیت name و age می باشد. این کلاس دارای یک متد Speek است که یک عبارت را به صورت پیغام نشان می دهد و سن و نام را می گوید.
نکته ای که در برنامه ی فوق قابل توجه است این است که متدی تعریف کرده ایم به نام Class_Initialize. این نام یک کلمه ی رزرو شده در زبان VBScript است و برای متد سازنده ی کلاس به کار می رود.
در واقع در کلاس فوق و هر کلاس دیگری، اگر متدی به نام Class_Initialize تعریف شده باشد، متد سازنده به حساب می آید.

متد سازنده چیست؟ متد سارنده متدی است که موقع ایجاد کلاس به صورت خودکار فراخوانی می شود. در واقع شما وقتی با استفاده از کلمه ی کلیدی New اقدام به ایجاد یک شی جدید از نوع کلاستان می کنید، در همین لحظه شی ایجاد می شود و متد سازنده ی کلاس فراخوانی می شود. وظیفه ی متد سازنده، مقدار دهی اولیه به شی است. همواره ما لازم داریم که وقتی شی ایجاد می شود، داخل متغیر های آن یک سری مقادیر پیش فرض قرار دهیم تا جلوی خطا های احتمالی را بگیریم.

خصوصیت ها یا Property ها

در مثال های بالا از متغیر های کلاس ها و توابع (متدها) نام بردیم. اما نوع خاصی از متغیر های کلاس ها هستند که به آن ها Property یا خصوصیت می گویند.
Property ها با متغیر ها تفاوت عمده ای ندارند. فرق مهمی که بین این دو تا هست، این است که متغیر ها معمولا باید Private باشند.

یک قانون وجود دارد که می گوید برای حفظ ویژگی بسته بندی در برنامه نویسی شی گرا، باید همه ی متغیر های استفاده شده در کلاس، خصوصی Private باشند. فقط متد ها حق دارند که عمومی Public باشند. دلیل این مسئله این است که در محیط خارجی، جزییات شی باید مخفی باشد. در خارج از شی نباید به متغیر ها دسترسی داشت. زیرا مانع از بسته بندی شی است.

اما در برخی شرایط ما لازم داریم که یک متغیر از بیرون قابل دسترسی و مقدار دهی باشد. در این گونه مواقع، از Property ها استفاده می کنیم. Property ها در واقع وسیله ای هستند که بتوان به واسطه ی آن ها به متغیر های کلاس دسترسی داشت. یعنی دسترسی به متغیر کلاس به صورت مستقیم صورت نمی گیرد و با واسطه انجام می شود.

مثال زیر را در نظر بگیرید:

Class Human
  Private internal_name
  Private internal_age
  
  Public Sub Speek
    MsgBox "I am a human. My name is " & internal_name & ". And I am " & internal_age & " years old!"
  End Sub
  Private Sub Class_Initialize()
    internal_name = "John"
    internal_age = 25
  End Sub
End Class
Dim test
Set test = New Human

در برنامه ی فوق، یک کلاس به نام Human تعریف شده که دارای دو تا متغیر internal_name و internal_age است. و متد Speek که نام و سن شخص را میگوید. متد سازنده ی کلاس هم که متغیر ها را مقدار دهی اولیه می کند.

حالا فرض کنید شرایطی پیش بیاید که ما لازم داشته باشیم متغیر internal_name را از بیرون مقدار دهی کنیم و به آن دسترسی داشته باشیم. برای این منظور کافی است یک Property ایجاد کنیم

برای تعریف یک Property جدید، به صورت زیر عمل می کنیم:

Class Human
  Private internal_name
  Private internal_age
  Public Sub Speek
    MsgBox "I am a human. My name is " & internal_name & ". And I am " & internal_age & " years old!"
  End Sub
  
  Private Sub Class_Initialize()
    internal_name = "John"
    internal_age = 25
  End Sub
  Public Property Get Name
    MsgBox "Getting Name"
    Name = internal_name
  End Property
  
  Public Property Let Name(ByVal strName)
    MsgBox "Setting Name"
    internal_name = strName
  End Property
End Class

Dim test
Set test = New Human

در کد فوق، یک property ایجاد کردیم به نام Name. همان طور که می بینید، برای ایجاد خصوصیت در کلاس، باید از کلمه ی کلیدی Property استفاده کنیم. هر خصوصیتی دارای دو تا متد Let و Get است.

Public Property Get Name
    MsgBox "Getting Name"
    Name = internal_name
  End Property
  
  Public Property Let Name(ByVal strName)
    MsgBox "Setting Name"
    internal_name = strName
  End Property
  

هنگامی که می خواهیم از خارج از کلاس، به این خصوصیت، مقدار بدهیم، متد Let فراخوانی می شود. و موقعی که می خواهیم مقدار یک خصوصیت را بخوانیم، متد Get فراخوانی می شود.

دسته بندی‌ها: 

دیدگاه‌ها

سلام 

خسته نباشید من تازه کار با VBScript و شروع کردم راستش و بخواهید استارت اول رو هم از سایت شما زدم

از شما ممنونم و امیدوارم اموزش های دیگه ای در این زمینه توی سایت شما پیدا کنم         متشکرم

سلام = سلامت باشید

به شما تبریک می گویم که VBScript را یاد میگیرید. امیدوارم که در این راه موفق باشید.

در حال حاضر، مهم‌ترین کاربر VBScript، در مدیریت سیستم های مبتنی بر ویندوز می باشد و یک زبان اسکریپت نویسی نسبتا قوی برای ویندوز به حساب می آید (همان طور که در لینوکس از پرل استفاده می شود، در ویندوز هم اغلب از VBScript استفاده می شود.)

اگر VBScript را با این هدف مطالعه کنید و در کنار آن مدیریت ویندوز سرور Windows Server را هم مطالعه کنید، برایتان آینده‌ی درخشانی را پیش بینی و آرزو می کنم.

من در این سایت مطالب VBScript جدید نیز خواهم نوشت گرچه بیشتر تمایل دارم راجع به دروپال مطلب بنویسم!

 

 

I love Drupal

افزودن دیدگاه جدید