OOP এর পূর্ণরূপ হলঃ Object-Oriented Programming। OOP তে সবকিছুই অবজেক্ট। যেমন- আপনি আমাদের এই বিশ্বকে নিয়ে কল্পনা করতে পারেন যা চাঁদ, সূর্য, পৃথিবী ইত্যাদি অবজেক্ট নিয়ে গঠিত।
একইভাবে, আপনি একটি গাড়ি কল্পনা করতে পারেন যা চাকা, গিয়ার, ইঞ্জিন ইত্যাদি অবজেক্ট নিয়ে গঠিত।
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর ধারণাও অনেকটা পথিবী এবং গাড়ির মতই। এটি সবকিছুকেই অবজেক্ট হিসাবে বিবেচনা করে। আপনি এই অবজেক্ট সমূহ ব্যবহার করে বিভিন্ন অ্যাপ্লিকেশন তৈরি করতে পারেন।
অবজেক্ট কি?
প্রসিডিউরাল(procedural) প্রোগ্রামিং স্টাইলে সকল ফাংশন এবং ভ্যারিয়েবলগুলো একত্রে গ্লোবাল স্কোপ((global scope) এর মধ্যে থাকে। এগুলোকে ব্যবহার করতে হলে শুধুমাত্র এদের নাম ধরে ডাকলেই হয়।
কিন্তু যখন আপনি ক্লাস ব্যবহার করবেন তখন ক্লাসের কোডসমুহ ক্লাসের বাইরের আলো বাতাস থেকে মুক্ত থাকে, অর্থাৎ অদৃশ্য অবস্থায় থাকে। তাই আপনি ক্লাসের কোডসমূহকে যখন-তখন অ্যাক্সেস করতে পারবেন না। কারণ ক্লাসের মধ্যে অবস্থিত কোডসমূহ ক্লাস স্কোপ দ্বারা এনক্যাপসুলেটেড(encapsulated) বা সুরক্ষিত হয়। এমতাবস্থায় ক্লাস এর কোডসমূহ অ্যাক্সেস করার একটি উপায় তো লাগবেই। আর এই উপায়টিই হলো ক্লাসের অবজেক্ট তৈরি।
আমরা একটি ক্লাস থেকে একাধিক অবজেক্ট তৈরি করতে পারি এবং অবজেক্টগুলো ক্লাসের প্রোপার্টি এবং মেথডসমূহকে অ্যাক্সেস(access) করতে পারে। ক্লাস থেকে তৈরি প্রতিটি অবজেক্ট একই প্রোপার্টি এবং মেথড ব্যবহার করলেও তাদের ভ্যালুসমূহ যথাক্রমে ভিন্ন হয়ে থাকে।

উপরের ছবিটি লক্ষ্য করুন, এখানে একটি ক্লাস থেকে কয়েকটি ভিন্ন মানের অবজেক্ট তৈরি করা হয়েছে।
Articles
- init(self, …)
- isinstance()
- চাইল্ড ক্লাস তৈরী করা
- issubclass()
- str(self)
- চাইল্ড অবজেক্ট প্যারেন্ট অবজেক্ট এর উত্তরাধিকার
- eq(self, other)
- super()কীওয়ার্ড
- type()
- lt(self, other)
- চাইল্ড ক্লাস হতে প্যারেন্ট ক্লাসের প্রপার্টি এক্সেস করা
- add(self, other)
- চাইল্ড ক্লাসের নিজস্ব প্রোপার্টি এবং মেথড
- চাইল্ড ক্লাসে প্যারেন্ট ক্লাসের মেথড কল করা
- Method Overriding