Constructors এবং Destructors এর ব্যবহার

Object-Oriented Programming (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) - ভিজুয়াল বেসিক ডট নেট (VB.Net) - Computer Programming

312

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 মেথডটি আপনি ব্যবহারের মাধ্যমে কিছু অতিরিক্ত কাজ করতে পারেন।
Content added By
Promotion

Are you sure to start over?

Loading...