কম্পিউটার

C++ ব্যবহার করে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর প্রাথমিক ধারণা


অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং হল এক ধরনের প্রোগ্রামিং যা অবজেক্ট ব্যবহার করে এবং এর কার্যকারিতা ক্লাস করে। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বাস্তব জগতের সত্ত্বা যেমন উত্তরাধিকার, পলিমরফিজম, ডেটা হাইডিং ইত্যাদির উপর ভিত্তি করে তৈরি করা হয়েছে। এটির উদ্দেশ্য এই ডেটা সেটগুলিতে ডেটা এবং ফাংশন কাজকে একত্রে আবদ্ধ করা যাতে তাদের ব্যবহার সীমিত করা যায়।

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর কিছু মৌলিক ধারণা হল −

  • ক্লাস
  • অবজেক্টস
  • এনক্যাপসুলেশন
  • পলিমরফিজম
  • উত্তরাধিকার
  • বিমূর্ততা

শ্রেণি − একটি শ্রেণী হল একটি ডেটা-টাইপ যার নিজস্ব সদস্য রয়েছে যেমন ডেটা সদস্য এবং সদস্য ফাংশন। এটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষায় একটি অবজেক্টের ব্লুপ্রিন্ট। এটি c++ এ অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর মৌলিক বিল্ডিং ব্লক। ক্লাসের একটি উদাহরণ তৈরি করে একটি ক্লাসের সদস্যদের প্রোগ্রামিং ভাষায় অ্যাক্সেস করা হয়।

শ্রেণীর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য হল −

  • শ্রেণি একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা-টাইপ।

  • একটি ক্লাসে সদস্য রয়েছে যেমন ডেটা সদস্য এবং সদস্য ফাংশন।

  • ডেটা সদস্যরা ক্লাসের ভেরিয়েবল।

  • সদস্যের কার্যাবলী ডাটা মেম্বারদের ম্যানিপুলেট করার জন্য ব্যবহার করা হয় এমন পদ্ধতি।

  • ডেটা সদস্যরা ক্লাসের বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করে যেখানে সদস্য ফাংশনগুলি ক্লাসের আচরণকে সংজ্ঞায়িত করে৷

একটি ক্লাসে একাধিক অবজেক্ট থাকতে পারে যার বৈশিষ্ট্য এবং আচরণ রয়েছে যা তাদের সবার জন্য সাধারণ।

সিনট্যাক্স

class class_name {
   data_type data_name;
   return_type method_name(parameters);
}

অবজেক্ট - একটি বস্তু একটি শ্রেণীর একটি উদাহরণ। এটি বৈশিষ্ট্য এবং আচরণ সহ একটি সত্তা যা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ে ব্যবহৃত হয়। একটি বস্তু হল সত্তা যা মেমরি বরাদ্দ করার জন্য তৈরি করা হয়। একটি ক্লাস যখন সংজ্ঞায়িত করা হয় তখন মেমরির অংশ থাকে না যা বস্তু তৈরি হওয়ার সাথে সাথে বরাদ্দ করা হবে।

সিনট্যাক্স

class_name object_name;

উদাহরণ

#include<iostream>
using namespace std;
class calculator {
   int number1;
   int number2;
   char symbol;
   public :
   void add() {
      cout<<"The sum is "<<number1 + number2 ;
   }
   void subtract() {
      cout<<"The subtraction is "<<number1 - number2 ;
   }
   void multiply() {
      cout<<"The multiplication is "<<number1 * number2 ;
   }
   void divide() {
      cout<<"The division is "<<number1 / number2 ;
   }
   calculator (int a , int b , char sym) {
      number1 = a;
      number2 = b;
      symbol = sym;
      switch(symbol){
         case '+' : add();
            break;
         case '-' : add();
            break;
         case '*' : add();
            break;
         case '/' : add();
            break;
         default : cout<<"Wrong operator";
      }
   }
};
int main() {
   calculator c1(12 , 34 , '+');
}

আউটপুট

The sum is 46

এনক্যাপসুলেশন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ, এনক্যাপসুলেশন হল একক ইউনিটে ডেটা এবং তথ্য একত্রে মোড়ানোর ধারণা। এনক্যাপসুলেশনের একটি আনুষ্ঠানিক সংজ্ঞা হবে:এনক্যাপসুলেশন ডেটা এবং সম্পর্কিত ফাংশনগুলিকে একত্রিত করে যা ডেটা ম্যানিপুলেট করতে পারে৷

আসুন একটি সহজ বাস্তব জীবনের উদাহরণ দিয়ে বিষয়টি বুঝতে পারি,

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

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ এনক্যাপসুলেশন ধারণার কারণে আরেকটি অত্যন্ত গুরুত্বপূর্ণ ধারণা সম্ভব, তা হল ডেটা অ্যাবস্ট্রাকশন বা ডেটা হাইডিং। এটি সম্ভব কারণ এনক্যাপসুলেটিং ডেটা লুকিয়ে রাখে শুধুমাত্র সেই তথ্যগুলি দেখায় যা প্রদর্শন করা প্রয়োজন৷

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

একটি বাস্তব জীবনের উদাহরণ নেওয়া যাক, পরিস্থিতির উপর নির্ভর করে একজন ব্যক্তির একাধিক আচরণ থাকতে পারে। যেমন একজন নারী একজন মা, ম্যানেজার এবং একজন কন্যা এবং এটি তার আচরণকে সংজ্ঞায়িত করে। এখান থেকেই পলিমারফিজমের ধারণাটি এসেছে।

সি++ প্রোগ্রামিং ভাষায়, পলিমরফিজম দুটি উপায় ব্যবহার করে অর্জন করা হয়। এগুলি হল অপারেটর ওভারলোডিং এবং ফাংশন ওভারলোডিং৷

অপারেটর ওভারলোডিং অপারেটরে ওভারলোডিং এবং অপারেটরের ব্যবহারের বিভিন্ন ক্ষেত্রে একাধিক আচরণ থাকতে পারে।

ফাংশন ওভারলোডিং একই নামের ফাংশন যা কিছু শর্তের উপর ভিত্তি করে একাধিক প্রকার করতে পারে।

উত্তরাধিকার এটি একটি শ্রেণীর ক্ষমতা বা অন্য শ্রেণীর বৈশিষ্ট্য বা বৈশিষ্ট্য উত্তরাধিকার সূত্রে প্রাপ্ত করা। এটি অত্যন্ত গুরুত্বপূর্ণ এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রাম কারণ এটি পুনঃব্যবহারযোগ্যতা যেমন উত্তরাধিকার ব্যবহার করে অন্য ক্লাসে সংজ্ঞায়িত একটি পদ্ধতি ব্যবহার করার অনুমতি দেয়। যে শ্রেণীটি অন্য শ্রেণী থেকে প্রপার্টি প্রাপ্ত করে তাকে চাইল্ড ক্লাস বা সাবক্লাস বলা হয় এবং যে শ্রেণী থেকে প্রপার্টিগুলি উত্তরাধিকার সূত্রে প্রাপ্ত হয় সেটি হল বেস ক্লাস বা প্যারেন্ট ক্লাস।

সি প্লাস প্লাস প্রোগ্রামিং ভাষা নিম্নলিখিত ধরনের উত্তরাধিকার সমর্থন করে

  • একক উত্তরাধিকার
  • একাধিক উত্তরাধিকার
  • মাল্টি লেভেল ইনহেরিটেন্স
  • অনুক্রমিক উত্তরাধিকার
  • হাইব্রিড উত্তরাধিকার

বিমূর্ততা ডেটা অ্যাবস্ট্রাকশন বা ডেটা হাইডিং হল ডেটা লুকানো এবং চূড়ান্ত ব্যবহারকারীকে শুধুমাত্র প্রাসঙ্গিক ডেটা দেখানোর ধারণা। এটি একটি গুরুত্বপূর্ণ অংশ অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং।

ধারণাটি আরও ভালভাবে বোঝার জন্য বাস্তব জীবনের উদাহরণ নেওয়া যাক, আমরা যখন একটি বাইক চালাই তখন আমরা কেবল জানি যে ব্রেক চাপলে বাইকটি বন্ধ হয়ে যাবে এবং থ্রটল ঘোরানো ত্বরান্বিত হবে তবে আপনি জানেন না এটি কীভাবে কাজ করে এবং এটি আমাদের জানা উচিত বলেও মনে হয় না তাই এটি একটি ধারণা ডেটা বিমূর্তকরণের মতোই করা হয়।

সি প্লাস প্লাস প্রোগ্রামিং ভাষাতে দুটি উপায় লিখুন যা ব্যবহার করে আমরা ডেটা বিমূর্ততা সম্পন্ন করতে পারি -

  • শ্রেণী ব্যবহার করে
  • হেডার ফাইল ব্যবহার করে

  1. C++ এ বেসিক গ্রাফিক প্রোগ্রামিং

  2. পাইথনে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং?

  3. পাইথন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ ডেটা লুকানো কী?

  4. পাইথনে অবজেক্ট ওরিয়েন্টেড ধারণাগুলো সংক্ষেপে ব্যাখ্যা কর?