অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর মূল ধারণাগুলির মধ্যে Properties, Methods, এবং Inheritance অত্যন্ত গুরুত্বপূর্ণ। এই ধারণাগুলির মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা, মডুলারিটি এবং সহজে পরিচালনা করা যায়। ম্যাটল্যাবেও OOP এর ধারণাগুলি ব্যবহার করা যায় এবং এই ফিচারগুলো প্রোগ্রামিং কোডকে আরও কার্যকরী ও মডুলার করে তোলে।
১. Properties (প্রোপার্টি)
Properties হল ক্লাসের একটি অংশ যা অবজেক্টের state বা data ধারণ করে। সাধারণত প্রোপার্টি গুলি ক্লাসের অ্যাট্রিবিউট (attribute) হিসেবে কাজ করে এবং অবজেক্টের মান বা অবস্থা নির্ধারণ করে।
বৈশিষ্ট্য:
- প্রোপার্টি হল ক্লাসের ইনস্ট্যান্স ভেরিয়েবল, যা অবজেক্টের ডেটা ধারণ করে।
- প্রোপার্টি সাধারণত ক্লাসের ভিতরে
propertiesব্লকের মধ্যে ডিফাইন করা হয়।
উদাহরণ:
classdef Car
properties
make % গাড়ির প্রস্তুতকারক
model % গাড়ির মডেল
year % গাড়ির বছর
end
methods
function obj = Car(make, model, year)
obj.make = make;
obj.model = model;
obj.year = year;
end
end
endএখানে, Car ক্লাসে তিনটি প্রোপার্টি (make, model, year) ডিফাইন করা হয়েছে, যা গাড়ির তথ্য ধারণ করে।
অবজেক্ট তৈরি করা:
myCar = Car('Toyota', 'Corolla', 2020);
disp(myCar.make); % Toyota
disp(myCar.model); % Corolla২. Methods (মেথড)
Methods হল ক্লাসের ফাংশন বা অ্যাকশন যা ক্লাসের প্রোপার্টি বা স্টেট ম্যানিপুলেট করতে ব্যবহৃত হয়। মেথডগুলি ক্লাসের সদস্য হিসেবে কাজ করে এবং ক্লাসের ইনস্ট্যান্সের উপর কাজ করে।
বৈশিষ্ট্য:
- মেথড সাধারণত ক্লাসের
methodsব্লকের মধ্যে ডিফাইন করা হয়। - মেথডগুলি ক্লাসের প্রোপার্টির উপর কার্যকর হতে পারে, অর্থাৎ ইনস্ট্যান্সের প্রোপার্টির মান পরিবর্তন করতে পারে।
উদাহরণ:
classdef Car
properties
make
model
year
end
methods
function obj = Car(make, model, year)
obj.make = make;
obj.model = model;
obj.year = year;
end
function displayInfo(obj)
disp(['Car Make: ', obj.make]);
disp(['Car Model: ', obj.model]);
disp(['Car Year: ', num2str(obj.year)]);
end
end
endএখানে displayInfo একটি মেথড, যা গাড়ির তথ্য প্রদর্শন করবে।
মেথড কল করা:
myCar = Car('Toyota', 'Corolla', 2020);
myCar.displayInfo();৩. Inheritance (ইনহেরিটেন্স)
Inheritance হল একটি OOP কনসেপ্ট যেখানে একটি ক্লাস অন্য একটি ক্লাস থেকে প্রোপার্টি এবং মেথড উত্তরাধিকারসূত্রে পায়। এতে কোড পুনঃব্যবহারযোগ্যতা বাড়ে এবং নতুন ক্লাস তৈরি করার সময় পূর্ববর্তী ক্লাসের বৈশিষ্ট্যগুলোকে উত্তরাধিকারীভাবে ব্যবহার করা যায়।
বৈশিষ্ট্য:
- একটি ক্লাস
superclassবাparent classথেকে অন্য ক্লাসsubclassবাchild classপ্রোপার্টি এবং মেথড গ্রহণ করে। - একটি সাবক্লাস মূল ক্লাসের মেথড এবং প্রোপার্টি ব্যবহার করতে পারে এবং এগুলিকে কাস্টমাইজ বা রিডিফাইন করতে পারে।
উদাহরণ:
classdef Vehicle
properties
make
model
end
methods
function obj = Vehicle(make, model)
obj.make = make;
obj.model = model;
end
function displayInfo(obj)
disp(['Vehicle Make: ', obj.make]);
disp(['Vehicle Model: ', obj.model]);
end
end
end
classdef Car < Vehicle
properties
year
end
methods
function obj = Car(make, model, year)
obj@Vehicle(make, model); % সুপারক্লাসের কনস্ট্রাক্টর কল করা
obj.year = year;
end
function displayInfo(obj)
displayInfo@Vehicle(obj); % সুপারক্লাসের মেথড কল করা
disp(['Car Year: ', num2str(obj.year)]);
end
end
endএখানে, Car ক্লাসটি Vehicle ক্লাস থেকে ইনহেরিট করেছে। Car ক্লাসের মধ্যে Vehicle ক্লাসের প্রোপার্টি এবং মেথড ব্যবহার করা হয়েছে।
ইনহেরিটেন্স ব্যবহার:
myCar = Car('Toyota', 'Corolla', 2020);
myCar.displayInfo();এটি Car ক্লাসের displayInfo মেথড কল করবে, যা প্রথমে Vehicle ক্লাসের displayInfo মেথড কল করবে এবং পরে Car ক্লাসের অতিরিক্ত তথ্য প্রদর্শন করবে।
সারাংশ
- Properties (প্রোপার্টি): ক্লাসের স্টেট বা ডেটা ধারণ করে, যেগুলি অবজেক্টের বৈশিষ্ট্য বা অ্যাট্রিবিউট হিসেবে কাজ করে।
- Methods (মেথড): ক্লাসের ফাংশন বা অ্যাকশন যা প্রোপার্টি ম্যানিপুলেট বা অবজেক্টের আচরণ নিয়ন্ত্রণ করে।
- Inheritance (ইনহেরিটেন্স): একটি ক্লাস অন্য একটি ক্লাস থেকে প্রোপার্টি এবং মেথড উত্তরাধিকারসূত্রে গ্রহণ করে, যা কোড পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।
এই তিনটি ধারণা OOP এর মূল স্তম্ভ এবং এগুলি ব্যবহার করে আরও মডুলার, ক্লিন এবং পুনঃব্যবহারযোগ্য কোড তৈরি করা যায়।
Read more