অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) একটি প্রোগ্রামিং ধারণা যেখানে কোডকে বিভিন্ন ক্লাস (Class) এবং অবজেক্ট (Object)-এ ভাগ করা হয়। এটি কোডকে মডুলার এবং পুনঃব্যবহারযোগ্য করে তোলে। ম্যাটল্যাবের মত ভাষাতেও OOP কনসেপ্ট ব্যবহার করা যায়। এখানে আমরা Class এবং Object কী এবং এগুলোর definition সম্পর্কে আলোচনা করব।
১. Class (ক্লাস)
Class হল একটি টেমপ্লেট বা ব্লুপ্রিন্ট, যা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি সাধারণত ডেটা (অ্যাট্রিবিউট) এবং ফাংশন (মেথড) ধারণ করে, যেগুলি সেই ধরনের অবজেক্টের আচরণ এবং গুণাবলী নির্ধারণ করে।
Class ডিফাইন করার সময় আপনি কিছু প্রোপার্টি (অ্যাট্রিবিউট) এবং মেথড (ফাংশন) নির্ধারণ করেন।
ক্লাস ডিফাইন করার উদাহরণ:
classdef Car
% 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(['Make: ', obj.Make]);
disp(['Model: ', obj.Model]);
disp(['Year: ', num2str(obj.Year)]);
end
end
endএখানে:
- properties: ক্লাসের অবজেক্টের মধ্যে যে সমস্ত ডেটা বা প্রোপার্টি থাকবে, সেগুলি সংজ্ঞায়িত করে।
- methods: ক্লাসের অবজেক্টের জন্য যে সমস্ত ফাংশন বা মেথড থাকবে, সেগুলি সংজ্ঞায়িত করে। এখানে
displayInfoএকটি মেথড যা গাড়ির তথ্য প্রদর্শন করবে। - কনস্ট্রাক্টর মেথড:
Carক্লাসের একটি কনস্ট্রাক্টর মেথড আছে যা একটি নতুন অবজেক্ট তৈরি করার জন্য ব্যবহার হয়।
২. Object (অবজেক্ট)
Object হল একটি ক্লাসের বাস্তব ইনস্ট্যান্স (instance)। এটি ক্লাসের attribute এবং method গুলি ধারণ করে এবং এর মাধ্যমে আপনি সেই ক্লাসের কার্যকারিতা ব্যবহার করতে পারেন।
অবজেক্ট তৈরি করা:
% Car ক্লাসের একটি অবজেক্ট তৈরি
myCar = Car('Toyota', 'Corolla', 2020);
% অবজেক্টের মেথড কল করা
myCar.displayInfo(); % গাড়ির তথ্য প্রদর্শন করবেএখানে:
myCarএকটি অবজেক্ট যাCarক্লাসের একটি ইনস্ট্যান্স।myCar.displayInfo()কল করার মাধ্যমেCarক্লাসেরdisplayInfoমেথডটি চালানো হয়।
Class এবং Object এর মধ্যে পার্থক্য
- Class হল একটি টেমপ্লেট বা ব্লুপ্রিন্ট যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি শুধুমাত্র একটি ডেফিনিশন এবং আচরণ (ফাংশন) সংজ্ঞায়িত করে।
- Object হল সেই টেমপ্লেটের ভিত্তিতে তৈরি করা একটি বাস্তব ইনস্ট্যান্স। এটি properties এবং methods ধারণ করে।
OOP এর মূল ধারণা:
- Encapsulation: ডেটা এবং মেথড একত্রে রাখা। প্রাইভেট ডেটা ক্লাসের বাইরে অ্যাক্সেস করা যাবে না।
- Abstraction: জটিলতা আড়াল করা এবং শুধুমাত্র প্রয়োজনীয় তথ্য প্রদান করা।
- Inheritance: একটি ক্লাস অন্য একটি ক্লাসের গুণাবলী উত্তরাধিকার সূত্রে গ্রহণ করতে পারে।
- Polymorphism: একাধিক মেথডের ব্যবহার, যার মাধ্যমে একই নামের ফাংশন বিভিন্ন ধরনের ইনপুট নিয়ে কাজ করতে পারে।
Class এবং Object এর অন্যান্য বৈশিষ্ট্য:
Properties (অ্যাট্রিবিউট):
ক্লাসের মধ্যে ডেটার উপাদানগুলি। এগুলি অবজেক্টের গুণাবলী বা বৈশিষ্ট্য হিসেবে কাজ করে।properties Make Model Year endMethods (ফাংশন):
ক্লাসের মধ্যে ফাংশন যা অবজেক্টের জন্য কার্যক্ষমতা নির্ধারণ করে।methods function obj = Car(make, model, year) obj.Make = make; obj.Model = model; obj.Year = year; end function displayInfo(obj) disp(['Make: ', obj.Make]); disp(['Model: ', obj.Model]); disp(['Year: ', num2str(obj.Year)]); end endConstructor:
ক্লাসের কনস্ট্রাক্টর হল একটি বিশেষ ধরনের মেথড যা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়।function obj = Car(make, model, year) obj.Make = make; obj.Model = model; obj.Year = year; end
সারাংশ
- Class হল একটি টেমপ্লেট বা ব্লুপ্রিন্ট যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি properties এবং methods ধারণ করে।
- Object হল সেই ক্লাসের একটি ইনস্ট্যান্স যা বাস্তবে ব্যবহৃত হয় এবং সেই ক্লাসের বৈশিষ্ট্য ও কার্যকারিতা ধারণ করে।
- ম্যাটল্যাবের মাধ্যমে Class এবং Object ব্যবহার করে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের শক্তি এবং সুবিধা অর্জন করা সম্ভব, যেমন ডেটা এনক্যাপসুলেশন, পুনঃব্যবহারযোগ্য কোড, এবং পরিষ্কার কোড উন্নয়ন।
এটি বিশেষত বড় এবং জটিল সিস্টেমে কার্যকরী, যেখানে কোডের সংগঠন এবং পুনঃব্যবহারযোগ্যতা খুব গুরুত্বপূর্ণ।
Read more