Computer Programming Constructors এবং Destructors এর ব্যবহার গাইড ও নোট

242

কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর হল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP)-এর গুরুত্বপূর্ণ ধারণা। এগুলি ক্লাসের ইনস্ট্যান্স তৈরি এবং ধ্বংস করার সময় স্বয়ংক্রিয়ভাবে কল হয়। এগুলির মাধ্যমে আপনি অবজেক্ট তৈরি এবং ধ্বংসের জন্য নির্দিষ্ট কাজ করতে পারেন।


১. কনস্ট্রাক্টর (Constructor)

কনস্ট্রাক্টর হল একটি বিশেষ ধরনের মেথড যা একটি ক্লাসের অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। কনস্ট্রাক্টর মূলত ক্লাসের অবজেক্ট ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়, যেমন কোনো ভেরিয়েবল বা প্রপার্টি সেট করা।

কনস্ট্রাক্টরের বৈশিষ্ট্য:

  • কনস্ট্রাক্টরের নাম সাধারণত ক্লাসের নামের মতো হয়।
  • কনস্ট্রাক্টর একটি রিটার্ন টাইপ (ফলস্ বা ভ্যালু) পায় না।
  • কনস্ট্রাক্টরটি যখন অবজেক্ট তৈরি করা হয় তখন স্বয়ংক্রিয়ভাবে কল হয়।

উদাহরণ: কনস্ট্রাক্টরের ব্যবহার (Pascal)

program ConstructorExample;

type
  TPerson = class
    name: string;
    age: Integer;

    constructor Create(n: string; a: Integer);  // কনস্ট্রাক্টর ডিফাইন করা
    begin
      name := n;
      age := a;
    end;
    
    procedure Display;
    begin
      writeln('Name: ', name);
      writeln('Age: ', age);
    end;
  end;

var
  person: TPerson;

begin
  person := TPerson.Create('Aziz', 25);  // কনস্ট্রাক্টর কল হচ্ছে
  person.Display;
  person.Free;  // অবজেক্ট ধ্বংস
end.

আউটপুট:

Name: Aziz
Age: 25

এখানে, Create কনস্ট্রাক্টরটি name এবং age ভেরিয়েবলগুলো ইনিশিয়ালাইজ করে, এবং Display পদ্ধতি অবজেক্টের তথ্য প্রদর্শন করে।


২. ডেস্ট্রাক্টর (Destructor)

ডেস্ট্রাক্টর হল একটি বিশেষ ধরনের মেথড যা একটি অবজেক্ট ধ্বংস করার সময় স্বয়ংক্রিয়ভাবে কল হয়। ডেস্ট্রাক্টরের কাজ হল অবজেক্টের কোনো রিসোর্স বা মেমরি মুক্ত করা, যা অবজেক্টটি ব্যবহার করার সময় বরাদ্দ হয়েছিল। এটি ক্লাসের ইনস্ট্যান্সে আর প্রয়োজনীয় না থাকলে এর মাধ্যমে রিসোর্স রিলিজ করা হয়।

ডেস্ট্রাক্টরের বৈশিষ্ট্য:

  • ডেস্ট্রাক্টরের নাম সাধারণত Destroy হয়।
  • এটি কোন রিটার্ন টাইপ পায় না।
  • যখন অবজেক্টটি মুক্ত করা হয় তখন ডেস্ট্রাক্টর কল হয়, এবং এটি অবজেক্টের মেমরি বা অন্যান্য রিসোর্স মুক্ত করে।

উদাহরণ: ডেস্ট্রাক্টরের ব্যবহার (Pascal)

program DestructorExample;

type
  TPerson = class
    name: string;
    age: Integer;

    constructor Create(n: string; a: Integer);  
    begin
      name := n;
      age := a;
    end;

    procedure Display;
    begin
      writeln('Name: ', name);
      writeln('Age: ', age);
    end;
    
    destructor Destroy;  // ডেস্ট্রাক্টর ডিফাইন করা
    begin
      writeln('Destructor called for ', name);
      inherited Destroy;  // প্যারেন্ট ক্লাসের ডেস্ট্রাক্টর কল করা
    end;
  end;

var
  person: TPerson;

begin
  person := TPerson.Create('Aziz', 25);  
  person.Display;
  person.Free;  // ডেস্ট্রাক্টর কল হবে
end.

আউটপুট:

Name: Aziz
Age: 25
Destructor called for Aziz

এখানে, Destroy ডেস্ট্রাক্টরটি অবজেক্ট person এর জন্য কল হচ্ছে যখন person.Free করা হয়, এবং মেমরি বা অন্যান্য রিসোর্স মুক্ত হচ্ছে।


কনস্ট্রাক্টর এবং ডেস্ট্রাক্টরের পার্থক্য

বৈশিষ্ট্যকনস্ট্রাক্টর (Constructor)ডেস্ট্রাক্টর (Destructor)
কোন সময় কল হয়?অবজেক্ট তৈরি হওয়ার সময়।অবজেক্ট ধ্বংস হওয়ার সময়।
নামক্লাসের নামের মতো হয়।সাধারণত Destroy হয়।
ফাংশনালিটিঅবজেক্ট ইনিশিয়ালাইজ করা।অবজেক্টের মেমরি বা রিসোর্স মুক্ত করা।
রিটার্ন টাইপকোন রিটার্ন টাইপ থাকে না।কোন রিটার্ন টাইপ থাকে না।

সারাংশ

  • কনস্ট্রাক্টর (Constructor) হল একটি বিশেষ মেথড যা অবজেক্ট তৈরি করার সময় ফাংশনের মতো কাজ করে এবং এটি অবজেক্টের প্রাথমিক মান ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়।
  • ডেস্ট্রাক্টর (Destructor) হল একটি বিশেষ মেথড যা অবজেক্ট ধ্বংস হওয়ার সময় কল হয় এবং এটি অবজেক্টের রিসোর্স বা মেমরি মুক্ত করতে ব্যবহৃত হয়।

প্রোগ্রামিংয়ের মধ্যে কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর দুটোই অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি অবজেক্টের জীবনচক্রকে নিয়ন্ত্রণ করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...