বাস্তব জীবনে ক্লাস এবং অবজেক্ট
খুব সহজে ক্লাস আর অবজেক্টের ব্যাপারে ধারণা পাওয়ার জন্য আমাদের দৈনন্দিন জীবনের বহুল ব্যবহৃত “SmartPhone” গুলোর দিকে লক্ষ্য করি।
এখানে SmartPhone ক্লাসকে আমরা বিভিন্ন রকম স্মার্টফোনের একটি ব্লুপ্রিন্ট হিসেবে ভাবতে পারি। SmartPhone বলতেই আমাদের চোখে কিছু কমন Attribute এবং Behavior ভেসে উঠে যেগুলো সবরকমের স্মার্টফোনেই পাওয়া যায়। যেমনঃ
- Attribute হিসেবে আমরা একটি স্মার্টফোনের Brand, Model, Color ইত্যাদি এবং
- Behavior হিসেবে স্মার্টফোনের সাধারণ কিছু কাজ যেমন Call, Browse, Take A Photo ইত্যাদি চিন্তা করতে পারি।
কিন্তু আমাদের একেক জনের কাছে একেক রকম Brand এর একেক রকম Model কিংবা Color এর ফোন থাকতে পারে। এই যে, স্মার্টফোন বলতে আমরা এর কিছু সাধারণ বৈশিষ্ট্য সম্পূর্ন ফোনকে ভিজুয়ালাইজ করি, এগুলোই SmartPhone ক্লাসের একেকটি অবজেক্ট। যেমনঃ
SmartPhone: iPhone
- Brand : Apple
- Model : iPhone15
- Color : Midnight
SmartPhone: Pixel
- Brand : Google
- Model : Pixel 8
- Color : Obsidian
সাধারণ বৈশিষ্ট্যগুলো ধারণ করে।
এবার, নিচের চিত্রটি লক্ষ্য করি।
এখানে আমরা Person নামের ক্লাসটিকে মানুষ তৈরি করার একটি ব্লুপ্রিন্ট হিসাবে কল্পনা করতে পারি, ঠিক যেমন কোন একটি ভিডিও গেম খেলতে গেলে আমরা বিভিন্ন রকমের ক্যারেক্টার তৈরী করি।
এই ব্লুপ্রিন্ট (ক্লাস) খেয়াল করলে আমরা দেখব, এটি আমাদেরকে বলে যে, একজন ব্যক্তির সম্পর্কে আমাদের কী তথ্য জানতে হবে, যেমন তার নাম, বয়স এবং ঠিকানা ইত্যাদি৷ এই বৈশিষ্ট্যগুলোই আমরা OOP এর ভাষায় বলি “Attribute”।
এছাড়া, এটি আমাদেরকে একজন ব্যক্তি কী কী কাজ করতে পারে, যেমন হাঁটা, কথা বলা এবং খাওয়া ইত্যাদি সম্পর্কে ধারণা দেয়। Person যে কাজগুলো করার সক্ষমতা রাখে, এগুলোকে বলা যায় তার “Behavior”।
এখন, আমরা Alice এবং Bob এর ব্যাপারে লক্ষ্য করি।
Person : Alice
- Name : Alice
- DateOfBirth : 19th Jan, 2000
- Gender : Female
Person : Bob
- Name : Bob
- DateOfBirth : 19th Feb, 2001
- Gender : Male
লক্ষ্য করলে দেখব, Alice এবং Bob মূলত Person ক্লাসের সাধারণ বৈশিষ্ট্য গুলো ধারণ করে। এবং একই কাজ গুলো করার সক্ষমতা রাখে।
মূলত, Alice এবং Bob, Person ক্লাস থেকে তৈরি হওয়া দুটো Object।
সুতরাং, একটি Person ক্লাস হল মানুষ তৈরির একটি ব্লুপ্রিন্টের মতো, এবং একটি Object হল একজন বাস্তব ব্যক্তি যার নিজস্ব অনন্য বিবরণ (unique details) রয়েছে।
বাস্তব জীবনের মতোই, Class-গুলি আমাদের বিভিন্ন ধরণের জিনিসগুলিকে সংগঠিত করতে এবং বুঝতে সাহায্য করে এবং Object-গুলি হল সেই জিনিসগুলির বাস্তব উদাহরণ যার সাথে আমরা যোগাযোগ (interact) করতে এবং জানতে পারি।