Vivasoft-logo

ক্লাস এবং অবজেক্ট

অবজেক্ট ওরিয়েন্টেড পোগ্রামিং নিয়ে কথা বলতে গেলে শুরুতেই যে জিনিসটি সামনে চলে আসে সেটি হল ক্লাস এবং অবজেক্ট। আমরা প্রথমে আলোচনা শুরু করব ক্লাস নিয়ে এবং পরবর্তীতে চলে যাব অবজেক্ট এর কাছে।

ক্লাস হচ্ছে অবজেক্ট এর একটি ব্লুপ্রিন্ট বা নকশা।এর অর্থ হচ্ছে একটি অবজেক্ট কি কি বৈশিষ্ট্য ধারণ করতে পারে, কি কি কাজ করতে পারে তা ডিফাইন করা থাকে একটা ক্লাসের ভেতরে, অপরদিকে অবজেক্ট হচ্ছে সেই ক্লাসের একটি উপাদান বা ইন্সট্যান্স যা মূলত ক্লাস থেকে সৃষ্ট সমস্ত বৈশিষ্ট্য ধারণ করে। একটা উদাহরন দেওয়া যাক।আমরা একটা গাড়ির কথা চিন্তা করি, একটা গাড়ির কি থাকে? চাকা থাকে, সিট থাকে, তেলের ট্যাংক থাকে ইত্যাদি ইত্যাদি। এখন আমরা যদি গাড়ির একটা সফটওয়ার বানাতে চাই তাহলে আমাদের কি লাগবে? আমাদের চাকার সাইজ আমাদের একটা ভ্যারিয়েবলে রাখতে হবে, সিটের সংখ্যার জন্য ভ্যারিয়েবল লাগবে, তেলের ট্যাঙ্কের জন্য ভ্যারিয়েবল লাগবে ইত্যাদি ইত্যাদি। এ ছাড়া গাড়ির বিভিন্ন ফাংশন গুলোর জন্য অনেক গুলো ফাংশন আমাদের লিখতে হবে।এখন আমরা এই সমস্যাটি সমাধান করার জন্য একটি ক্লাস বানাব, ক্লাসটি হবে একটি গাড়ির ব্লুপ্রিন্ট এবং ক্লাসটি লিখব আমরা ডার্ট ল্যাঙ্গুয়েজ এ।

class Car {
String manufacturerCompany = 'BMW';
String color = 'Black';
int numberOfSeats = 4;
}
 

ডার্ট ল্যাঙ্গুয়েজ এ ক্লাস তৈরি করার জন্যে class কিওয়ার্ড টি ব্যাবহার করতে হয়।আমরা খুবই সাধারণ একটি Car ক্লাস তৈরি করলাম যেখানে ক্লাস ভারিয়েবল হিসেবে রাখা হয়েছে গাড়ি তৈরির কোম্পানির নাম,গাড়িটির রঙ কি হবে সেটা এবং গাড়িটিতে কয়টি সিট থাকবে। তাহলে আমাদের ক্লাস তৈরি হয়ে গেল, এখন আমরা চলে যাব অবজেক্ট নিয়ে কথা বলতে ।

একদম সহজ কথায় এই কার ক্লাসটির ব্লুপ্রিন্ট/নকশা ব্যাবহার করে আমরা যে গাড়িটি তৈরি করব সেটিই হবে একটা অবজেক্ট, আমাদের Car ক্লাসটির একটা অবজেক্ট।তাহলে আমরা ডার্ট ল্যাঙ্গুয়েজ ব্যাবহার করে Car ক্লাসের একটা অবজেক্ট তৈরি করে ফেলি

class Car {
String manufacturerCompany = 'BMW';
String color = 'Black';
int numberOfSeats = 4;
}

void main() {
Car car = Car();
print(car.manufacturerCompany);
print(car.color);
print(car.numberOfSeats);
}
 

আউটপুট:

BMW
Black
4
 

এখানে Car ক্লাস এর একটা অবজেক্ট তৈরি হল, যার নাম দেওয়া হয়েছে car এবং এই অবজেক্ট টিকে ব্যাবহার করে আমরা কনসোলে Car ক্লাসটির বিভিন্ন ভ্যারিয়েবল গুলোকে প্রিন্ট করে দেখলাম।