কম্পিউটার টিউটোরিয়াল

অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) কী?

অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং (OOP) হলো একটি প্রোগ্রামিং প্যারাডাইম যা "অবজেক্ট" কনসেপ্টের ওপর ভিত্তি করে, যাতে ডেটা থাকতে পারে (ফিল্ড আকারে, जिन्हেন সাধারণত অ্যাট্রিবিউট বলা হয়); এবং কোড (প্রসিডিউর আকারে, যাকে সাধারণত মেথড বলা হয়)। উদাহরণস্বরূপ, একটি ব্যক্তি একটি অবজেক্ট যার কিছু প্রপার্টি আছে যেমন হাইট, জেন্ডার, এজ, ইত্যাদি। তার কিছু মেথডও আছে যেমন মুভ, টক, ইত্যাদি।

অবজেক্ট (Object)

এটি অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং-এর বেসিক ইউনিট। অর্থাৎ ডেটা এবং ডেটা ওপর অপারেট করার ফাংশন দুটোই একসাথে বান্ডল করা হয় একটি ইউনিট হিসেবে যাকে অবজেক্ট বলা হয়।

ক্লাস (Class)

যখন আপনি একটি ক্লাস ডিফাইন করেন, আপনি একটি অবজেক্টের জন্য একটি ব্লুপ্রিন্ট ডিফাইন করেন। এটা আসলে কোনো ডেটা ডিফাইন করে না, কিন্তু এটি ডিফাইন করে ক্লাসের নাম কী বোঝায়, অর্থাৎ, ক্লাসের একটি অবজেক্ট কী কনসিস্ট করবে এবং সেরকম অবজেক্টের ওপর কী অপারেশন পারফর্ম করা যায়।

OOP-র চারটি বেসিক কনসেপ্ট আছে যেগুলোর ওপর এটি সম্পূর্ণরূপে ভিত্তি করে। আসুন সেগুলো আলাদা আলাদা দেখি:

  • অ্যাবস্ট্রাকশন (Abstraction) − এটা বোঝায়, বাইরের দুনিয়ায় শুধু জরুরি ইনফরমেশন দেয়া এবং তাদের ব্যাকগ্রাউন্ড ডিটেইলস হাইড করা। উদাহরণস্বরূপ, একটি ওয়েব সার্ভার হাইড করে কীভাবে সেটি রিসিভড ডেটা প্রসেস করে, এন্ড ইউজার শুধু এন্ডপয়েন্ট হিট করে এবং ডেটা পায়।
  • এনক্যাপসুলেশন (Encapsulation) − এনক্যাপসুলেশন হলো ডেটা মেম্বার (ভেরিয়েবল, প্রপার্টি) এবং মেম্বার ফাংশন (মেথড) কে একটি সিঙ্গল ইউনিটে বান্ডল করার প্রক্রিয়া। এটি কিছু প্রপার্টি বা কম্পোনেন্টে অ্যাক্সেস রিস্ট্রিক্ট করার একটি পদ্ধতিও। এনক্যাপসুলেশনের সেরা উদাহরণ হলো একটি ক্লাস।
  • ইনহেরিটেন্স (Inheritance) − একটি এক্সিস্টিং ক্লাস থেকে একটি নতুন ক্লাস তৈরি করার ক্ষমতাকে ইনহেরিটেন্স বলা হয়। ইনহেরিটেন্স ব্যবহার করে, আমরা একটি পেরেন্ট ক্লাস থেকে একটি চাইল্ড ক্লাস তৈরি করতে পারি যাতে সেটি পেরেন্ট ক্লাসের প্রপার্টি এবং মেথড ইনহেরিট করে এবং নিজস্ব অতিরিক্ত প্রপার্টি এবং মেথড রাখতে পারে। উদাহরণস্বরূপ, আমাদের কাছে একটি Vehicle ক্লাস আছে যার প্রপার্টি আছে Color, Price, ইত্যাদি, আমরা সেটি থেকে ২টি ক্লাস তৈরি করতে পারি Bike এবং Car যাদের ওই ২টি প্রপার্টি থাকবে এবং তাদের জন্য স্পেশালাইজড অতিরিক্ত প্রপার্টি থাকবে যেমন একটি কার-এর numberOfWindows আছে কিন্তু বাইকের নেই। মেথডও একইভাবে প্রযোজ্য।
  • পলিমরফিজম (Polymorphism) − পলিমরফিজম শব্দের অর্থ হলো অনেক রূপ ধারণ করা। সাধারণত, পলিমরফিজম ঘটে যখন একটি ক্লাস হায়ারার্কি থাকে এবং সেগুলো ইনহেরিটেন্স দিয়ে রিলেটেড থাকে। C++ পলিমরফিজম মানে হলো একটি মেম্বার ফাংশন কল করলে আলাদা ফাংশন এক্সিকিউট হবে সেই অবজেক্টের টাইপের উপর নির্ভর করে যেটি ফাংশনটি ইনভোক করছে।
  1. C#-এ ইনহেরিটেন্স কী?

  2. C#-এ Array ক্লাস কী?

  3. C#-এ Array ক্লাসের প্রোপার্টিগুলো

  4. পাইথন ООপি বেসিক্স কী কী?