মূল পার্থক্য – ক্লাস বনাম ইন্টারফেস
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) সফ্টওয়্যার বিকাশের একটি সাধারণ দৃষ্টান্ত। এটি ক্লাস এবং অবজেক্ট ব্যবহার করে প্রোগ্রামিংয়ে বাস্তব-বিশ্বের পরিস্থিতি আনতে সাহায্য করে। একটি শ্রেণী একটি বস্তু তৈরি করার জন্য একটি ব্লুপ্রিন্ট। প্রোগ্রামার বৈশিষ্ট্য এবং পদ্ধতি সহ একটি ক্লাস তৈরি করতে পারে। একজন ছাত্র এবং শিক্ষক বস্তু। একটি বস্তু তৈরি করা instantiation হিসাবে পরিচিত. OOP এছাড়াও ইন্টারফেস ব্যবহার করে। ইন্টারফেস এবং ক্লাস অনুরূপ মনে হতে পারে, কিন্তু তাদের একটি পার্থক্য আছে। এই নিবন্ধটি একটি ক্লাস এবং একটি ইন্টারফেসের মধ্যে পার্থক্য নিয়ে আলোচনা করে। একটি ক্লাস এবং একটি ইন্টারফেসের মধ্যে মূল পার্থক্য হল একটি ক্লাস হল একটি রেফারেন্স টাইপ যা একটি অবজেক্টকে ইনস্ট্যান্টিয়েট করার জন্য একটি ব্লুপ্রিন্ট যখন ইন্টারফেসটি একটি রেফারেন্স টাইপ যা একটি অবজেক্টকে ইনস্ট্যান্টিয়েট করতে ব্যবহার করা যায় না।
ক্লাস কি?
OOP-এ, সবকিছুকে একটি বস্তু হিসাবে বিবেচনা করা হয়। ক্লাস ছাড়া অবজেক্ট তৈরি করা সম্ভব নয়। একটি শ্রেণী একটি বস্তু তৈরি করার জন্য একটি ব্লুপ্রিন্ট। একটি বাড়ি তৈরি করার সময়, স্থপতি পরিকল্পনাটি আঁকেন। পরিকল্পনা একটি ক্লাস অনুরূপ. ঘর বস্তুর অনুরূপ। শ্রেণী হল একটি বস্তু নির্মাণের পরিকল্পনা। একটি বস্তু যা ক্লাস ব্যবহার করে তৈরি করা হয়।
শ্রেণীটিতে বৈশিষ্ট্য এবং পদ্ধতি রয়েছে। একজন শিক্ষার্থীর নাম, গ্রেড, সূচক নম্বরের মতো বৈশিষ্ট্য থাকতে পারে। একজন শিক্ষার্থীর পড়া, হাঁটা, অধ্যয়নের মতো পদ্ধতি থাকতে পারে। প্রয়োজনীয় বৈশিষ্ট্য এবং পদ্ধতি নিয়ে একটি ক্লাস তৈরি করা হয়েছে।
অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজে ক্লাস তৈরির সিনট্যাক্স নিম্নরূপ। এটি কীওয়ার্ড ক্লাস ব্যবহার করে তৈরি করা হয়েছে।
শ্রেণির_নাম {
// বৈশিষ্ট্য
//পদ্ধতি
}
প্রোগ্রামিং ভাষা যেমন C এবং জাভা একটি ক্লাস ব্যবহার করে একটি অবজেক্ট তৈরি করতে একই ধরনের সিনট্যাক্স অনুসরণ করে। ধরে নিন ক্লাসের নাম ছাত্র।
ছাত্র s1=নতুন ছাত্র ();
এই s1 হল অবজেক্ট। "নতুন" কীওয়ার্ডটি বৈশিষ্ট্যগুলির জন্য মেমরি বরাদ্দ করতে ব্যবহৃত হয়। বৈশিষ্ট্য বা ভেরিয়েবল শুরু করার জন্য একটি ক্লাসের একটি কনস্ট্রাক্টরও রয়েছে৷
শ্রেণীর সদস্যদের যেমন বৈশিষ্ট্য এবং পদ্ধতির অ্যাক্সেস মডিফায়ার আছে। অ্যাক্সেস স্পেসিফায়ার অন্যান্য ক্লাসে সেই সদস্যদের অ্যাক্সেসযোগ্যতা এবং দৃশ্যমানতা বর্ণনা করে। ক্লাসের সদস্যদের অ্যাক্সেস স্পেসিফায়ার যেমন পাবলিক, প্রাইভেট এবং সুরক্ষিত থাকতে পারে। পাবলিক সদস্যরা অন্যান্য শ্রেণীর দ্বারা অ্যাক্সেসযোগ্য। ব্যক্তিগত সদস্যরা শুধুমাত্র ক্লাসে প্রবেশযোগ্য। সুরক্ষিত সদস্যরা ক্লাস এবং প্রাসঙ্গিক সাবক্লাসের মধ্যে অ্যাক্সেসযোগ্য৷
ইন্টারফেস কি?
অ্যাবস্ট্রাকশন হল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর একটি স্তম্ভ। এটি বাস্তবায়নের বিবরণ লুকিয়ে রাখা এবং ব্যবহারকারীর কাছে কার্যকারিতা প্রদর্শন করা। বিমূর্ত ক্লাস এবং ইন্টারফেস ব্যবহার করে বিমূর্ততা অর্জন করা হয়। একটি বিমূর্ত পদ্ধতির একটি বাস্তবায়ন নেই। যে শ্রেণীতে অন্তত একটি বিমূর্ত পদ্ধতি থাকে তাকে বিমূর্ত শ্রেণী বলে।
যখন দুটি বিমূর্ত ক্লাস থাকে, সেই ক্লাসগুলিতে ঘোষিত পদ্ধতিগুলি প্রয়োগ করা উচিত। এই পদ্ধতিগুলি বাস্তবায়নের জন্য একটি নতুন ক্লাস ব্যবহার করা হয়। উভয় শ্রেণীর একই পদ্ধতি থাকলে, এটি একটি অস্পষ্টতার সমস্যা সৃষ্টি করতে পারে। সুতরাং, জাভা এবং সি এর মতো প্রোগ্রামিং ভাষাগুলির একটি ইন্টারফেস রয়েছে৷
ইন্টারফেসে শুধুমাত্র পদ্ধতির ঘোষণা রয়েছে। বাস্তবায়নের কোন পদ্ধতি নেই। এছাড়াও, বস্তু তৈরি করতে ইন্টারফেস ব্যবহার করা যাবে না। এগুলি একাধিক উত্তরাধিকার সমর্থন করতে এবং কোড সুরক্ষিত করতে ব্যবহৃত হয়৷
ইন্টারফেসের সিনট্যাক্স নিম্নরূপ। ইন্টারফেস "ইন্টারফেস" কীওয়ার্ড ব্যবহার করে।
ইন্টারফেস ইন্টারফেস_নাম{
টাইপ পদ্ধতি1(প্যারামিটার_তালিকা);
টাইপ পদ্ধতি2(প্যারামিটার_তালিকা);
}
উপরের মতে, ইন্টারফেসে শুধুমাত্র ঘোষণা আছে। কোন সংজ্ঞা নেই। সুতরাং, ইন্টারফেস বস্তুগুলিকে তাত্ক্ষণিক করতে পারে না। এটি শুধুমাত্র ইন্টারফেস কি একটি বিমূর্ত দৃশ্য দেয়.ইন্টারফেসে ঘোষিত পদ্ধতিগুলি এক বা একাধিক শ্রেণী দ্বারা প্রয়োগ করা যেতে পারে। একটি ক্লাস একটি ইন্টারফেস বাস্তবায়নের জন্য "বাস্তবায়ন" কীওয়ার্ড ব্যবহার করে। Java ব্যবহার করে লেখা নিচের উদাহরণ দেখুন।
চিত্র 01: ইন্টারফেস ব্যবহার করে প্রোগ্রাম
উপরের প্রোগ্রাম অনুসারে, A এবং B হল ইন্টারফেস। ইন্টারফেস A-তে একটি পদ্ধতি ঘোষণা রয়েছে যা যোগফল()। ইন্টারফেস বি এর একটি পদ্ধতি ঘোষণা সাব() রয়েছে। ক্লাস সি উভয় ইন্টারফেস বাস্তবায়ন করছে যা A এবং B। তাই, ক্লাস C sum() এবং sub() উভয় পদ্ধতিকে সংজ্ঞায়িত করে। C টাইপের অবজেক্ট তৈরি করার পর, sum() এবং sub() উভয় পদ্ধতিকেই কল করা সম্ভব।
ইন্টারফেসের ভিতরে ঘোষিত পদ্ধতিগুলি সর্বদা সর্বজনীন হতে হবে কারণ বাস্তবায়নকারী শ্রেণীগুলি তাদের সংজ্ঞায়িত করে। একটি ইন্টারফেস অন্য ইন্টারফেস থেকেও উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে৷
ক্লাস এবং ইন্টারফেসের মধ্যে মিল কী?
- উভয়টাই রেফারেন্সের ধরন।
- দুটিই অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সাথে সম্পর্কিত।
ক্লাস এবং ইন্টারফেসের মধ্যে পার্থক্য কী?
শ্রেণী বনাম ইন্টারফেস |
|
একটি ক্লাস একটি রেফারেন্স টাইপ যা একটি অবজেক্ট তৈরি করার ব্লুপ্রিন্ট। | একটি ইন্টারফেস একটি রেফারেন্স টাইপ যা ইনস্ট্যান্ট করা যায় না। |
অবজেক্ট ইনস্ট্যান্টেশন | |
কোন বস্তুকে ইনস্ট্যান্ট করতে একটি ক্লাস ব্যবহার করা হয়। | একটি ইন্টারফেস ইনস্ট্যান্ট করা যাবে না কারণ পদ্ধতিগুলি কোনও কাজ করতে অক্ষম৷ |
কনস্ট্রাক্টর | |
একটি ক্লাসে একটি কনস্ট্রাক্টর থাকে, ভেরিয়েবল শুরু করতে। | একটি ইন্টারফেসে কনস্ট্রাক্টর থাকে না কারণ সেগুলি আরম্ভ করার জন্য খুব কমই কোনো ভেরিয়েবল থাকে। |
কীওয়ার্ড | |
একটি ক্লাস "ক্লাস" কীওয়ার্ড ব্যবহার করে। | একটি ইন্টারফেস "ইন্টারফেস" কীওয়ার্ড ব্যবহার করে। |
অ্যাক্সেস স্পেসিফায়ার | |
ক্লাসের সদস্যরা ব্যক্তিগত, সর্বজনীন এবং সুরক্ষিত হতে পারে৷ | ইন্টারফেসের সদস্যদের সর্বদা সর্বজনীন হওয়া উচিত কারণ বাস্তবায়নকারী শ্রেণীগুলি তাদের সংজ্ঞায়িত করে৷ |
সারাংশ – ক্লাস বনাম ইন্টারফেস
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ ক্লাস এবং ইন্টারফেস ব্যাপকভাবে ব্যবহৃত হয়। একটি ক্লাস এবং একটি ইন্টারফেসের মধ্যে পার্থক্য হল একটি ক্লাস হল একটি রেফারেন্স টাইপ যা একটি অবজেক্টকে ইনস্ট্যান্টিয়েট করার ব্লুপ্রিন্ট এবং ইন্টারফেস হল একটি রেফারেন্স টাইপ যা একটি অবজেক্টকে ইনস্ট্যান্টিয়েট করতে ব্যবহার করা যায় না।একটি ক্লাস অনেক ইন্টারফেস বাস্তবায়ন করতে পারে। কিন্তু এটি শুধুমাত্র একটি সুপারক্লাস প্রসারিত করতে পারে। ইন্টারফেসে অনেক ইন্টারফেস উত্তরাধিকারী হতে পারে কিন্তু একটি বাস্তবায়ন হতে পারে না। দুটোরই গুরুত্ব আছে। প্রোগ্রামার ডেভেলপিং সফটওয়্যার অনুযায়ী এগুলো ব্যবহার করতে পারে।
পিডিএফ ক্লাস বনাম ইন্টারফেস ডাউনলোড করুন
আপনি এই নিবন্ধটির PDF সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। অনুগ্রহ করে এখানে পিডিএফ সংস্করণ ডাউনলোড করুন ক্লাস এবং ইন্টারফেসের মধ্যে পার্থক্য