Constructors এবং Destructors এর ব্যবহার in VB.Net
Constructors এবং Destructors হল বিশেষ ধরনের মেথড, যা অবজেক্টের জীবনচক্র (lifecycle) পরিচালনা করে। Constructors ব্যবহার করা হয় অবজেক্ট তৈরি করার সময় ইনিশিয়ালাইজ করার জন্য, এবং Destructors ব্যবহার করা হয় অবজেক্টের জীবন শেষ হওয়ার আগে কোনো পরিস্কারক কাজ করার জন্য।
1. Constructors (কনস্ট্রাক্টর)
Constructor হল একটি বিশেষ মেথড যা ক্লাসের একটি অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। কনস্ট্রাক্টরের প্রধান কাজ হলো অবজেক্টটি ইনিশিয়ালাইজ করা, অর্থাৎ অবজেক্টের জন্য প্রয়োজনীয় প্রাথমিক মান নির্ধারণ করা।
কনস্ট্রাক্টরের মূল বৈশিষ্ট্য:
- কনস্ট্রাক্টরের নাম অবশ্যই ক্লাসের নামের সাথে মিলে থাকতে হবে।
- কনস্ট্রাক্টরটি return type (যেমন
Integer,Stringইত্যাদি) রাখে না। - একাধিক কনস্ট্রাক্টর থাকতে পারে, যা method overloading এর মাধ্যমে বিভিন্ন প্যারামিটার সহ ডিফাইন করা যায়।
সিনট্যাক্স:
Public Class ClassName
' Constructor Definition
Public Sub New()
' Initialization code
End Sub
End Classউদাহরণ ১: Default Constructor
Public Class Person
Public Name As String
Public Age As Integer
' Default Constructor
Public Sub New()
Name = "Unknown"
Age = 0
End Sub
End Class
Sub Main()
' Constructor automatically called
Dim person1 As New Person()
Console.WriteLine("Name: " & person1.Name & ", Age: " & person1.Age)
End Subআউটপুট:
Name: Unknown, Age: 0ব্যাখ্যা:
- এখানে
Newকিওয়ার্ড দ্বারাPersonক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে। কনস্ট্রাক্টরটিNameএবংAgeএর প্রাথমিক মানUnknownএবং0সেট করেছে।
উদাহরণ ২: Parameterized Constructor
কনস্ট্রাক্টরের প্যারামিটারও থাকতে পারে, যার মাধ্যমে আপনি অবজেক্ট তৈরি করার সময় মান ইনপুট দিতে পারেন।
Public Class Person
Public Name As String
Public Age As Integer
' Parameterized Constructor
Public Sub New(ByVal name As String, ByVal age As Integer)
Name = name
Age = age
End Sub
End Class
Sub Main()
' Constructor with parameters
Dim person1 As New Person("John", 25)
Console.WriteLine("Name: " & person1.Name & ", Age: " & person1.Age)
End Subআউটপুট:
Name: John, Age: 25ব্যাখ্যা:
- এখানে
New("John", 25)কনস্ট্রাক্টর কল করছে এবং এটি অবজেক্টের Name এবং Age প্যারামিটার দিয়ে ইনিশিয়ালাইজ করছে।
2. Destructors (ডিস্ট্রাক্টর)
Destructor হল একটি বিশেষ মেথড যা অবজেক্টটি ধ্বংস হওয়ার আগে স্বয়ংক্রিয়ভাবে কল হয়। ডিস্ট্রাক্টর সাধারণত পরিস্কারক কাজ যেমন রিসোর্স (ফাইল, ডেটাবেস সংযোগ, মেমরি) মুক্ত করার জন্য ব্যবহৃত হয়।
ডিস্ট্রাক্টরের মূল বৈশিষ্ট্য:
- ডিস্ট্রাক্টর কোনো return type (যেমন
Integer,Stringইত্যাদি) রাখে না। - VB.Net-এ
Finalizeমেথড হল ডিস্ট্রাক্টরের সমতুল্য, যা রিসোর্স ফ্রি করার জন্য ব্যবহার করা হয়। VB.Net-এ আপনি ডিস্ট্রাক্টরকে সরাসরি ডিফাইন করতে পারেন না, তবেFinalizeমেথড ব্যবহার করা হয়।
সিনট্যাক্স:
Public Class ClassName
' Destructor (Finalize Method)
Protected Overrides Sub Finalize()
' Cleanup code
MyBase.Finalize()
End Sub
End Classউদাহরণ: Destructor (Finalize Method)
Public Class Person
Public Name As String
Public Age As Integer
' Constructor
Public Sub New(ByVal name As String, ByVal age As Integer)
Name = name
Age = age
End Sub
' Destructor
Protected Overrides Sub Finalize()
Console.WriteLine("Destructor called for: " & Name)
MyBase.Finalize()
End Sub
End Class
Sub Main()
' Creating object
Dim person1 As New Person("John", 25)
' Object will be destroyed at the end of program and Finalize will be called
End Subআউটপুট:
Destructor called for: Johnব্যাখ্যা:
Finalizeমেথডটি Destructor হিসেবে কাজ করছে, যা অবজেক্টটি ধ্বংস হওয়ার সময় কল হয়। এটি কোনো পরিস্কারক কাজ করতে ব্যবহৃত হয় (যেমন রিসোর্স ফ্রি করা)।MyBase.Finalize()ব্যবহার করা হয়েছে যাতে বেস ক্লাসেরFinalizeমেথডও কল হয়।
Garbage Collection
VB.Net-এর Garbage Collector (GC) স্বয়ংক্রিয়ভাবে মেমরি ম্যানেজমেন্ট এবং অবজেক্টের পরিষ্কারক কাজ করে থাকে। ডিস্ট্রাক্টরের কাজ হল রিসোর্স পরিষ্কার করা, তবে GC স্বয়ংক্রিয়ভাবে অবজেক্টের জীবন শেষ হলে তা মুছে দেয়। Finalize মেথডের মাধ্যমে আপনি পরিষ্কারক কাজ করতে পারেন, তবে এটি GC দ্বারা নির্ধারিত সময়েই কল হয়।
সারাংশ
- Constructors: কনস্ট্রাক্টর হল একটি বিশেষ মেথড যা ক্লাসের অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয় এবং অবজেক্টের প্রাথমিক মান ইনিশিয়ালাইজ করে। এটি ডিফল্ট বা প্যারামিটারাইজড হতে পারে।
- Destructors: ডিস্ট্রাক্টর (যা Finalize মেথডে নির্ধারিত) অবজেক্টের জীবনের শেষে স্বয়ংক্রিয়ভাবে কল হয় এবং এটি রিসোর্স পরিস্কার করার জন্য ব্যবহৃত হয়।
- Garbage Collection: VB.Net-এ Garbage Collector স্বয়ংক্রিয়ভাবে অবজেক্টগুলোকে মুক্ত করে, কিন্তু Finalize মেথডটি আপনি ব্যবহারের মাধ্যমে কিছু অতিরিক্ত কাজ করতে পারেন।
Read more