পাইথনে ООপি ধারণা
পাইথন একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা। পাইথনে ক্লাস এবং অবজেক্ট সহজে তৈরি ও ব্যবহার করা যায়।
পাইথন প্রোগ্রামিং ভাষার প্রধান অবজেক্ট-ওরিয়েন্টেড ধারণাগুলো নিচে দেওয়া হলো:
অবজেক্ট; ক্লাস; মেথড; ইনহেরিটেন্স; পলিমরফিজম; ডেটা অ্যাবস্ট্রাকশন; এনক্যাপসুলেশন
অবজেক্ট
অবজেক্ট হলো এমন একটি এন্টিটি যার স্টেট এবং বিহেভিয়র রয়েছে। এটি ফিজিক্যাল বা লজিক্যাল হতে পারে। উদাহরণ: মাউস, কিবোর্ড, চেয়ার, টেবিল, কলম ইত্যাদি।
পাইথনে সবকিছুই একটি অবজেক্ট, এবং প্রায় সবকuchু-এর অ্যাট্রিবিউট এবং মেথড রয়েছে।
ক্লাস
ক্লাসকে অবজেক্টের সমষ্টি হিসেবে সংজ্ঞায়িত করা যায়। এটি একটি লজিক্যাল এন্টিটি যাতে কিছু নির্দিষ্ট অ্যাট্রিবিউট এবং মেথড থাকে। উদাহরণ: যদি আপনার একটি Student ক্লাস থাকে, তবে সেটিতে email id, name, age, roll number ইত্যাদি অ্যাট্রিবিউট এবং মেথড থাকা উচিত।
মেথড
মেথড হলো একটি ফাংশন যা একটি অবজেক্টের সাথে যুক্ত থাকে। পাইথনে, মেথড শুধু ক্লাস ইনস্ট্যান্সের জন্য সীমাবদ্ধ নয়। যেকোনো অবজেক্ট টাইপের মেথড থাকতে পারে।
ইনহেরিটেন্স
ইনহেরিটেন্স নির্দেশ করে যে একটি অবজেক্ট তার প্যারেন্ট অবজেক্টের সকল প্রপার্টি এবং বিহেভিয়র অর্জন করে। ইনহেরিটেন্স ব্যবহার করে আমরা এক্সিস্টিং ক্লাসে খুব কম বা কোনো পরিবর্তন না করে একটি নতুন ক্লাস ডিফাইন করতে পারি। নতুন ক্লাসকে ডেরাইভড ক্লাস বা চাইল্ড ক্লাস বলা হয় এবং যার প্রপার্টি গুলো ইনহেরিট করা হয় সেটিকে বেস ক্লাস বা প্যারেন্ট ক্লাস বলা হয়। এটি কোড রি-ইউজেবিলিটি প্রদান করে।
পলিমরফিজম
পলিমরফিজম নির্ধারণ করে যে একই টাস্ক ভিন্ন ভিন্নভাবে সম্পাদন করা যায়। উদাহরণ: আমাদের একটি Animal ক্লাস আছে এবং সব প্রাণী কথা বলে। কিন্তু তারা ভিন্নভাবে কথা বলে। এখানে, "talk" বিহেভিয়র সম্পূর্ণরূপে প্রাণীর ওপর নির্ভর করে। তাই, অ্যাবস্ট্রাক্ট "animal" আসলে "talk" করে না, বরং নির্দিষ্ট প্রাণীদের "talk" অ্যাকশনের কনক্রিট ইমপ্লিমেন্টেশন থাকে।
এনক্যাপসুলেশন
এনক্যাপসুলেশন মেথড এবং ভেরিয়েবল অ্যাক্সেস সীমাবদ্ধ করতে ব্যবহৃত হয়। এনক্যাপসুলেশনে, কোড এবং ডেটা একটি সিঙ্গেল ইউনিটে একসাথে র্যাপ করা থাকে যাতে অকস্মাতে সেগুলো মডিফাই না হয়।
ডেটা অ্যাবস্ট্রাকশন
ডেটা অ্যাবস্ট্রাকশন এবং এনক্যাপসুলেশন সমার্থক কারণ ডেটা অ্যাবস্ট্রাকশন এনক্যাপসুলেশনের মাধ্যমে অর্জিত হয়।
অ্যাবস্ট্রাকশন ইন্টারনাল ডিটেইলস লুকিয়ে শুধু ফাংশনালিটি দেখাতে ব্যবহৃত হয়। কিছুকে অ্যাবস্ট্রাক্ট করার মানে সেগুলোকে নাম দিয়ে চিহ্নিত করা, যাতে সেই নামটি একটি ফাংশন বা পুরো প্রোগ্রামের মূল ধারণা ক্যাপচার করে।