ক্লাস বনাম কাঠামো
অবজেক্ট ওরিয়েন্টেড (OO) প্রোগ্রামিং ভাষার কিছু প্রধান ধারণা হল এনক্যাপসুলেশন, ইনহেরিটেন্স এবং পলিমরফিজম। ক্লাস এবং স্ট্রাকচার হল OO কনস্ট্রাক্ট/টুলগুলির মধ্যে দুটি, যা প্রোগ্রামারদের এই ধারণাগুলি অর্জন করতে সাহায্য করে বেশিরভাগ OO প্রোগ্রামিং ল্যাঙ্গুয়েজের মধ্যে (জাভা স্ট্রাকচার প্রদান করে না)। ক্লাস বাস্তব বিশ্বের বস্তুর একটি বিমূর্ত উপস্থাপনা. কাঠামোগুলি অনুরূপ ব্যবহারের সাথে ক্লাসগুলির সাথে খুব মিল, তবে ক্লাসের তুলনায় কিছু সীমাবদ্ধতা রয়েছে৷ শ্রেণী এবং কাঠামো উভয়ই একই ধরণের ডেটা একসাথে গ্রুপ করতে ব্যবহৃত হয়।
ক্লাস কি?
ক্লাসগুলি বাস্তব বিশ্বের বস্তুর বিমূর্ত উপস্থাপনাকে চিত্রিত করে, যখন সম্পর্কগুলি চিত্রিত করে যে কীভাবে প্রতিটি শ্রেণি অন্যদের সাথে সংযুক্ত। শ্রেণী এবং সম্পর্ক উভয়েরই বৈশিষ্ট্য আছে যাকে বলা হয় বৈশিষ্ট্য। ক্লাসের পদ্ধতিগুলি এই শ্রেণীর আচরণের প্রতিনিধিত্ব করে বা সংজ্ঞায়িত করে। ক্লাসের পদ্ধতি এবং বৈশিষ্ট্যগুলিকে ক্লাসের সদস্য বলা হয়। সাধারণত, বৈশিষ্ট্যগুলিকে ব্যক্তিগত করে এনক্যাপসুলেশন অর্জন করা হয়, যখন সেই বৈশিষ্ট্যগুলি অ্যাক্সেস করতে ব্যবহার করা যেতে পারে এমন সর্বজনীন পদ্ধতি তৈরি করা হয়। একটি বস্তু একটি শ্রেণীর উদাহরণ. উত্তরাধিকার ব্যবহারকারীকে অন্যান্য ক্লাস (যাকে সুপার ক্লাস বলা হয়) থেকে ক্লাস (সাব ক্লাস বলা হয়) প্রসারিত করার অনুমতি দেয়। পলিমরফিজম প্রোগ্রামারকে তার সুপার ক্লাসের একটি বস্তুর পরিবর্তে একটি শ্রেণীর একটি বস্তুকে প্রতিস্থাপন করতে দেয়। সাধারণত, সমস্যা সংজ্ঞাতে পাওয়া বিশেষ্যগুলি সরাসরি প্রোগ্রামের ক্লাসে পরিণত হয়। এবং একইভাবে, ক্রিয়াগুলি পদ্ধতিতে পরিণত হয়। সর্বজনীন, ব্যক্তিগত এবং সুরক্ষিত হল ক্লাসের জন্য ব্যবহৃত সাধারণ অ্যাক্সেস মডিফায়ার। একটি ক্লাস ডায়াগ্রাম সিস্টেমের ক্লাস, ক্লাসের মধ্যে সম্পর্ক এবং তাদের বৈশিষ্ট্যগুলি দেখায়।
কাঠামো কি?
উপরে উল্লিখিত হিসাবে, স্ট্রাকচারগুলি অনুরূপ ব্যবহারের সাথে ক্লাসগুলির সাথে খুব মিল, তবে ক্লাসের তুলনায় সামান্য সীমিত ক্ষমতা। প্রকৃতপক্ষে, ক্লাসগুলিকে কাঠামোর সম্প্রসারণ হিসাবে বিবেচনা করা যেতে পারে। উদাহরণস্বরূপ, স্ট্রাকচারগুলি C++-এ ক্লাসের মতোই, কিন্তু ডিফল্টরূপে তাদের পাবলিক সদস্য রয়েছে। একটি কাঠামোকে ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা যেতে পারে একটি যৌগিক ধরণের প্রতিনিধিত্ব করার জন্য। ক্লাসের মতোই, স্ট্রাকচারে সদস্য থাকে যা অনেক ধরনের হতে পারে। কীওয়ার্ড স্ট্রাকচারটি C এবং C++ এ একটি কাঠামোকে সংজ্ঞায়িত করতে ব্যবহৃত হয়, যখন. NET প্রোগ্রামিং ভাষাতে একই জন্য কীওয়ার্ড স্ট্রাকচার ব্যবহার করা হয়।
ক্লাস এবং কাঠামোর মধ্যে পার্থক্য কী?
যদিও, উভয় ক্লাস এবং স্ট্রাকচার প্রোগ্রামিং ল্যাঙ্গুয়েজগুলিতে পাওয়া একই ধরনের গঠন, তাদের মধ্যে সূক্ষ্ম পার্থক্য রয়েছে। সাধারণত, শ্রেণী হল কাঠামোর একটি সম্প্রসারণ, এবং তাই কাঠামোর কিছু আপেক্ষিক সীমাবদ্ধতা রয়েছে। উদাহরণস্বরূপ, স্ট্রাকচারগুলিকে C++-এ ক্লাসের মতোই বিবেচনা করা যেতে পারে, কিন্তু সদস্যরা ডিফল্টভাবে ক্লাসে সর্বজনীন নয় (স্ট্রাকচারের বিপরীতে)।এর প্রকৃত অর্থ হল আপনি C++ এ উপযুক্ত অ্যাক্সেস মডিফায়ার ব্যবহার করে ঠিক একই বৈশিষ্ট্য সহ একটি শ্রেণী এবং একটি কাঠামো সংজ্ঞায়িত করতে পারেন। তবে সি-তে, কাঠামোতে কোনো ফাংশন বা ওভারলোডেড অপারেশন থাকতে পারে না। কীওয়ার্ড ক্লাস এবং স্ট্রাকট যথাক্রমে C++ এ একটি ক্লাস এবং একটি কাঠামো নির্ধারণ করতে ব্যবহৃত হয়। যখন এটি. NET ভাষার (C, VB. NET, ইত্যাদি) আসে, ক্লাস একটি রেফারেন্স টাইপ, যখন কাঠামো একটি মান প্রকার। এবং সাধারণত, স্ট্রাকচারগুলি ছোট বস্তুর জন্য ব্যবহার করা হয়, তবে ক্লাসগুলি বৃহত্তর বস্তুর জন্য ব্যবহার করা হয় যা দীর্ঘ সময়ের জন্য মেমরিতে রাখা হয়।