Handle Objects এবং Class Definition

Advanced Data Types (অ্যাডভান্সড ডেটা টাইপস) - ম্যাটল্যাব (MATLAB) - Computer Programming

341

MATLAB-এ Handle Objects এবং Class Definition

MATLAB-এ Handle Objects এবং Class Definition-এ কাজ করার জন্য Object-Oriented Programming (OOP) ব্যবহার করা হয়। Handle Objects হলো এমন অবজেক্ট যা সঠিকভাবে মেমরির রেফারেন্স পাস করে এবং একাধিক অবজেক্টের মধ্যে শেয়ার করা যায়। অন্যদিকে, Class Definition ব্যবহার করে আপনি নিজস্ব ক্লাস তৈরি করতে পারেন, যা অবজেক্ট-ভিত্তিক প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ।

এখানে আমরা Handle Objects এবং Class Definition নিয়ে বিস্তারিত আলোচনা করব।


১. Handle Objects (হ্যান্ডল অবজেক্ট)

MATLAB এ Handle Objects হল একটি বিশেষ ধরনের অবজেক্ট, যেখানে অবজেক্টটি মেমরিতে একটি রেফারেন্স দ্বারা পরিচালিত হয়। যখন আপনি একটি হ্যান্ডল অবজেক্ট তৈরি করেন, তখন সেই অবজেক্টটির একটি রেফারেন্স তৈরি হয় এবং একাধিক ভেরিয়েবল বা অবজেক্ট সেটি শেয়ার করতে পারে। যদি আপনি হ্যান্ডল অবজেক্টের কোনো একটি অংশ পরিবর্তন করেন, তবে এটি সেই রেফারেন্সগুলির সমস্ত অনুলিপি প্রতিফলিত করবে।

সিনট্যাক্স:

classdef MyClass < handle
    properties
        Property1
    end
    methods
        function obj = MyClass(val)
            obj.Property1 = val;
        end
        
        function displayProperty(obj)
            disp(['Property1: ', num2str(obj.Property1)]);
        end
    end
end
  • এখানে, classdef দ্বারা একটি নতুন ক্লাস তৈরি করা হয়েছে, যা handle থেকে উত্তরাধিকারী।
  • < handle নির্দেশ করে যে এটি একটি হ্যান্ডল অবজেক্ট ক্লাস।

উদাহরণ ১: Handle Object ব্যবহার করা

% ক্লাস সংজ্ঞায়িত করা
classdef MyClass < handle
    properties
        Value
    end
    methods
        function obj = MyClass(val)
            obj.Value = val;
        end
        function changeValue(obj, newVal)
            obj.Value = newVal;
        end
    end
end

% অবজেক্ট তৈরি করা
obj1 = MyClass(10);
obj2 = obj1;  % obj2 এখন obj1 এর হ্যান্ডল

% প্রথম অবজেক্টের মান পরিবর্তন
obj1.changeValue(20);

% দ্বিতীয় অবজেক্টের মানও পরিবর্তিত হবে
disp(['obj1 Value: ', num2str(obj1.Value)]);
disp(['obj2 Value: ', num2str(obj2.Value)]);

আউটপুট:

obj1 Value: 20
obj2 Value: 20

এখানে, obj1 এবং obj2 একই হ্যান্ডল শেয়ার করছে, তাই obj1 এর মান পরিবর্তন করার পর obj2 এর মানও পরিবর্তিত হয়েছে।


২. Class Definition (ক্লাস সংজ্ঞায়ন)

Class Definition ব্যবহারের মাধ্যমে আপনি MATLAB-এ নতুন ক্লাস তৈরি করতে পারেন। ক্লাসগুলি ডেটা এবং ফাংশন একত্রিত করার উপায় প্রদান করে, যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের (OOP) একটি গুরুত্বপূর্ণ অংশ। MATLAB-এ ক্লাস তৈরি করতে classdef কিওয়ার্ড ব্যবহার করা হয়।

সিনট্যাক্স:

classdef ClassName
    properties
        Property1
        Property2
    end
    methods
        function obj = ClassName(val1, val2)
            obj.Property1 = val1;
            obj.Property2 = val2;
        end
        function displayProperties(obj)
            disp(['Property1: ', num2str(obj.Property1)]);
            disp(['Property2: ', num2str(obj.Property2)]);
        end
    end
end
  • properties ব্লকে ক্লাসের প্রপার্টি বা ভেরিয়েবল ডিফাইন করা হয়।
  • methods ব্লকে ক্লাসের ফাংশন বা মেথড ডিফাইন করা হয়।

উদাহরণ ২: নতুন ক্লাস তৈরি এবং ব্যবহার

classdef Person
    properties
        Name
        Age
    end
    
    methods
        function obj = Person(name, age)
            obj.Name = name;
            obj.Age = age;
        end
        
        function displayInfo(obj)
            disp(['Name: ', obj.Name]);
            disp(['Age: ', num2str(obj.Age)]);
        end
    end
end

% নতুন অবজেক্ট তৈরি করা
person1 = Person('John', 30);

% অবজেক্টের মেথড কল করা
person1.displayInfo();

আউটপুট:

Name: John
Age: 30

এখানে, Person ক্লাসটি Name এবং Age প্রপার্টি ধারণ করে এবং displayInfo মেথডের মাধ্যমে সেই তথ্য প্রদর্শন করা হয়।


৩. Handle Objects এবং Class Definition-এ পার্থক্য

বৈশিষ্ট্যHandle ObjectsNormal Class Objects
মেমরি ব্যবস্থাপনাহ্যান্ডল অবজেক্টগুলি রেফারেন্সের মাধ্যমে শেয়ার করা হয়, তাই একটি অবজেক্টের পরিবর্তন অন্য অবজেক্টেও প্রতিফলিত হয়।প্রতিটি অবজেক্ট আলাদাভাবে কাজ করে, একটির পরিবর্তন অন্যটির উপর প্রভাব ফেলে না।
ক্লাসের ডিফাইনেশনclassdef ClassName < handleclassdef ClassName
অবজেক্ট রেফারেন্সএকাধিক ভেরিয়েবল একই অবজেক্টের রেফারেন্স শেয়ার করতে পারে।প্রতিটি অবজেক্ট আলাদা থাকে এবং একে অপরের সাথে শেয়ার হয় না।

৪. Constructor Methods (কনস্ট্রাক্টর মেথড)

ক্লাসের জন্য কনস্ট্রাক্টর মেথড ডিফাইন করা হয়, যা অবজেক্ট তৈরির সময় প্রাথমিক মান সেট করার জন্য ব্যবহৃত হয়। কনস্ট্রাক্টর মেথডটি সাধারণত ক্লাসের নামের মতোই নামকরণ করা হয়।

উদাহরণ: কনস্ট্রাক্টর মেথড

classdef Circle
    properties
        Radius
    end
    
    methods
        function obj = Circle(r)  % কনস্ট্রাক্টর মেথড
            if nargin > 0
                obj.Radius = r;  % রেডিয়াস সেট করা
            end
        end
        
        function area = calculateArea(obj)
            area = pi * obj.Radius^2;  % বৃত্তের এলাকা
        end
    end
end

% অবজেক্ট তৈরি করা
circle1 = Circle(5);  % রেডিয়াস 5 দিয়ে বৃত্ত তৈরি

% এলাকা বের করা
disp(['Area of the circle: ', num2str(circle1.calculateArea())]);

আউটপুট:

Area of the circle: 78.5398

এখানে, Circle ক্লাসের কনস্ট্রাক্টর মেথড Radius প্রপার্টি সেট করতে ব্যবহার করা হয়েছে।


সারসংক্ষেপ

  1. Handle Objects:
    • MATLAB-এ handle objects এমন অবজেক্ট যা মেমরিতে রেফারেন্স দ্বারা পরিচালিত হয়, এবং একাধিক ভেরিয়েবল বা অবজেক্ট একই অবজেক্ট শেয়ার করতে পারে। এর মাধ্যমে একটি অবজেক্টের পরিবর্তন অন্য সব রেফারেন্সে প্রতিফলিত হয়।
  2. Class Definition:
    • Class definition আপনাকে আপনার নিজস্ব ক্লাস তৈরি করতে দেয়, যেখানে আপনি প্রপার্টি (অথবা ভেরিয়েবল) এবং মেথড (অথবা ফাংশন) সংজ্ঞায়িত করতে পারেন।
  3. Constructor Methods:
    • কনস্ট্রাক্টর মেথড ব্যবহার করে আপনি অবজেক্ট তৈরি করার সময় প্রাথমিক মান নির্ধারণ করতে পারেন।

MATLAB-এ Object-Oriented Programming (OOP) কনসেপ্ট আপনাকে ডেটা এবং ফাংশনগুলিকে একটি ইউনিটে প্যাকেজ করার সুযোগ দেয়, যা কোডের পুনঃব্যবহারযোগ্যতা এবং পরিচালনীয়তা উন্নত করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...