VBScript একটি স্ক্রিপ্টিং ভাষা হলেও এতে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর কিছু মূল ধারণা সমর্থিত রয়েছে। VBScript এ ক্লাস তৈরি এবং অবজেক্ট তৈরি করা যায়, তবে এটি অন্যান্য পূর্ণাঙ্গ OOP ভাষার মতো ব্যাপকভাবে অবজেক্ট ওরিয়েন্টেড ফিচার (যেমন ইনহেরিটেন্স) সমর্থন করে না। তবুও, VBScript এ Encapsulation, Polymorphism, এবং Abstraction এর মতো OOP কনসেপ্ট বাস্তবায়ন করা সম্ভব।
VBScript এ ক্লাস এবং অবজেক্ট তৈরি
VBScript এ ক্লাস এবং অবজেক্ট তৈরি করতে Class কিওয়ার্ড ব্যবহার করা হয়। ক্লাসের মধ্যে বিভিন্ন Property (গুণ) এবং Method (পদ্ধতি) থাকতে পারে।
ক্লাস তৈরি এবং অবজেক্ট তৈরি
ক্লাস তৈরি
Class Person
' Properties (গুণ)
Public Name
Public Age
' Method (পদ্ধতি)
Public Sub Introduce
MsgBox "My name is " & Name & " and I am " & Age & " years old."
End Sub
End Class
এখানে, Person নামক একটি ক্লাস তৈরি করা হয়েছে। এতে দুটি পাবলিক প্রপার্টি রয়েছে—Name এবং Age, এবং একটি Introduce নামক মেথড রয়েছে যা ক্লাসের অবজেক্টের তথ্য প্রদর্শন করবে।
অবজেক্ট তৈরি করা
একবার ক্লাস তৈরি হলে, আপনি তার অবজেক্ট তৈরি করতে পারেন এবং এর প্রপার্টি বা মেথড ব্যবহার করতে পারেন।
Dim person1
' অবজেক্ট তৈরি করা
Set person1 = New Person
' অবজেক্টের প্রপার্টি সেট করা
person1.Name = "John"
person1.Age = 30
' অবজেক্টের মেথড কল করা
person1.Introduce
এখানে, person1 নামক একটি অবজেক্ট তৈরি করা হয়েছে Person ক্লাস থেকে। অবজেক্টটির Name এবং Age প্রপার্টি সেট করা হয়েছে এবং Introduce মেথড কল করা হয়েছে, যা মেসেজ বক্সে তথ্য প্রদর্শন করবে।
Encapsulation (এনক্যাপসুলেশন)
Encapsulation হল ডেটা (প্রপার্টি) এবং ফাংশন (মেথড) একত্রে একটি একক ইউনিটে রাখা। VBScript এ, আপনি ক্লাসের প্রপার্টি এবং মেথড একত্রিত করে ডেটাকে সুরক্ষিত রাখতে পারেন। এছাড়া, প্রপার্টি বা মেথডকে Private করে রাখতে পারেন যাতে তারা বাইরের কোড থেকে সরাসরি অ্যাক্সেস না করা যায়।
উদাহরণ: Encapsulation
Class Person
' Private Properties (গোপন প্রপার্টি)
Private Name
Private Age
' Public Method to set Name
Public Sub SetName(newName)
Name = newName
End Sub
' Public Method to set Age
Public Sub SetAge(newAge)
Age = newAge
End Sub
' Public Method to get Name
Public Function GetName()
GetName = Name
End Function
' Public Method to get Age
Public Function GetAge()
GetAge = Age
End Function
' Public Method to introduce
Public Sub Introduce
MsgBox "My name is " & GetName() & " and I am " & GetAge() & " years old."
End Sub
End Class
এখানে, Name এবং Age প্রপার্টি গোপন রাখা হয়েছে (Private), এবং সেগুলি অ্যাক্সেস করার জন্য পাবলিক Set এবং Get মেথড ব্যবহার করা হয়েছে। এটি ডেটা সুরক্ষা এবং ক্লাসের ভিতরের লজিক নিয়ন্ত্রণ করতে সাহায্য করে।
Polymorphism (পলিমরফিজম)
Polymorphism হল একটি ফাংশন বা মেথডের একাধিক রূপ থাকতে পারে। VBScript এ পলিমরফিজম সাধারণত ওভাররাইডিং বা ওভারলোডিং এর মাধ্যমে বাস্তবায়িত হয় না, তবে আপনি একই নামের মেথড তৈরি করে বিভিন্ন পরিস্থিতিতে আলাদা আলাদা ফলাফল পেতে পারেন।
উদাহরণ: Polymorphism
Class Animal
Public Sub Speak
MsgBox "Animal speaks"
End Sub
End Class
Class Dog
Inherits Animal
' Dog ক্লাসে Speak মেথড ওভাররাইড
Public Sub Speak
MsgBox "Dog barks"
End Sub
End Class
Dim myAnimal, myDog
Set myAnimal = New Animal
Set myDog = New Dog
' Animal ক্লাসের Speak মেথড
myAnimal.Speak
' Dog ক্লাসের Speak মেথড
myDog.Speak
এখানে, Dog ক্লাসটি Animal ক্লাস থেকে ইনহেরিট করেছে এবং Speak মেথডকে ওভাররাইড করেছে, যাতে ডগের জন্য আলাদা আচরণ (বarking) তৈরি করা হয়।
Abstraction (অ্যাবস্ট্রাকশন)
Abstraction হল এমন একটি ধারণা যার মাধ্যমে ক্লাসের ভিতরের জটিলতাগুলো লুকিয়ে রাখা হয় এবং শুধুমাত্র দরকারি অংশ প্রকাশ করা হয়। VBScript এ আপনি Private প্রপার্টি এবং মেথড ব্যবহার করে অ্যাবস্ট্রাকশন অর্জন করতে পারেন।
উদাহরণ: Abstraction
Class Car
Private Make
Private Model
Public Sub SetCarDetails(carMake, carModel)
Make = carMake
Model = carModel
End Sub
Public Function GetCarDetails()
GetCarDetails = "Car Make: " & Make & ", Model: " & Model
End Function
End Class
Dim myCar
Set myCar = New Car
myCar.SetCarDetails "Toyota", "Corolla"
' Only the GetCarDetails method is accessible
MsgBox myCar.GetCarDetails
এখানে, Make এবং Model প্রপার্টি গোপন রাখা হয়েছে এবং তাদের সেট ও গেট করার জন্য পাবলিক মেথড দেয়া হয়েছে। বাইরের কোড শুধুমাত্র SetCarDetails এবং GetCarDetails মেথড ব্যবহার করতে পারে।
সারাংশ
VBScript এ OOP এর কিছু মূল ধারণা যেমন Encapsulation, Polymorphism, এবং Abstraction সমর্থিত হলেও এটি পূর্ণাঙ্গ OOP ভাষার মতো ইনহেরিটেন্স এবং অন্যান্য বৈশিষ্ট্য সমর্থন করে না। তবে VBScript এর মাধ্যমে আপনি ক্লাস এবং অবজেক্ট তৈরি করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা, ডেটা নিরাপত্তা এবং কার্যকারিতা বাড়াতে সহায়তা করে।