জাভাতে প্যাকেজ এবং ইন্টারফেসের মধ্যে মূল পার্থক্য হল প্যাকেজ ক্লাসগুলিকে সহজে অ্যাক্সেস এবং বজায় রাখার জন্য পদ্ধতিগতভাবে শ্রেণিবদ্ধ করতে সাহায্য করে যখন ইন্টারফেস একাধিক উত্তরাধিকার প্রয়োগ করতে এবং বিমূর্ততা অর্জন করতে সহায়তা করে।
জাভা সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষাগুলির মধ্যে একটি। জাভার প্রধান সুবিধা হল এটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং সমর্থন করে। এই পদ্ধতিটি সফ্টওয়্যারে বাস্তব বিশ্বের বস্তুর মডেলিংয়ের অনুমতি দেয়। একটি শ্রেণী একটি বস্তু তৈরি করার জন্য একটি ব্লুপ্রিন্ট। প্রতিটি বস্তুর বৈশিষ্ট্য বা বৈশিষ্ট্য এবং আচরণ বর্ণনা করার পদ্ধতি বর্ণনা করার জন্য ডেটা বা ক্ষেত্র রয়েছে। এই নিবন্ধটি জাভাতে জাভাতে OOP সম্পর্কিত দুটি ধারণা নিয়ে আলোচনা করে যা হল প্যাকেজ এবং ইন্টারফেস।
জাভাতে প্যাকেজ কি?
জাভা প্রচুর সংখ্যক ক্লাস প্রদান করে। সমস্ত ক্লাস একক ফোল্ডারে রাখা কঠিন হতে পারে কারণ এটি অ্যাক্সেস করা কঠিন। এটি প্রোগ্রাম পরিচালনার উপর প্রভাব ফেলতে পারে। জাভা ক্লাস সাজানোর জন্য প্যাকেজ ব্যবহার করে। এটি একটি ফোল্ডারের অনুরূপ। Java API কার্যকারিতা অনুযায়ী বিভিন্ন প্যাকেজে শ্রেণীবদ্ধ করে। অতএব, প্রতিটি প্যাকেজে ক্লাসের একটি সম্পর্কিত সেট রয়েছে৷
জাভাতে প্যাকেজের উদাহরণ
কয়েকটি উদাহরণ প্যাকেজ নিম্নরূপ। java.io প্যাকেজে ইনপুট, আউটপুট সাপোর্টিং ক্লাস রয়েছে। এতে ফাইল, প্রিন্টস্ট্রিম, বাফারইনপুটস্ট্রিম ইত্যাদি রয়েছে। java.net প্যাকেজে নেটওয়ার্কিং সম্পর্কিত ক্লাস রয়েছে। কিছু উদাহরণ হল URL, সকেট, সার্ভারসকেট। java.awt প্যাকেজটিতে গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরির জন্য প্রয়োজনীয় সমস্ত ক্লাস রয়েছে। এগুলি কয়েকটি জাভা API প্যাকেজ।
যখন প্রোগ্রামার প্রোগ্রামে একটি নির্দিষ্ট শ্রেণী ব্যবহার করতে চায়, তখন তার সেই প্যাকেজটি আমদানি করা উচিত। প্রোগ্রামার যদি java.io প্যাকেজে BufferInputStream ক্লাস ব্যবহার করতে চায়, তাহলে তাকে নিম্নরূপ আমদানি বিবৃতি লিখতে হবে।
import java.util. BufferInoutStream;
নীচের বিবৃতিটি ইউটিল প্যাকেজের সমস্ত ক্লাস আমদানি করবে।
import java.util.;
ব্যবহারকারীর নির্ধারিত প্যাকেজ তৈরি করাও সম্ভব।
প্যাকেজ কর্মচারী;
সরকারি শ্রেণীর কর্মচারী {
}
উপরের উদাহরণ অনুসারে, কর্মচারী হল প্যাকেজের নাম। কর্মচারী শ্রেণী কর্মচারী প্যাকেজের একটি অংশ। এই ফাইলটি Employee.java হিসাবে কর্মচারী প্যাকেজে সংরক্ষণ করে।
উপরন্তু, একটি প্যাকেজ থেকে অন্য প্যাকেজে একটি পাবলিক ক্লাস আমদানি করা সম্ভব। নিম্নলিখিত উদাহরণ পড়ুন।

চিত্র 01: ক্লাস A

চিত্র 02: ক্লাস B
ক্লাস A প্যাকেজ 1 এ রয়েছে এবং এতে প্রদর্শন নামক সর্বজনীন পদ্ধতি রয়েছে। ক্লাস B প্যাকেজ 2 এ রয়েছে এবং এতে প্রধান পদ্ধতি রয়েছে। যদিও তারা আলাদা প্যাকেজে থাকে; ক্লাস B প্যাকেজ 1 আমদানি করে ক্লাস A এর একটি অবজেক্ট তৈরি করতে পারে। প্যাকেজ 1 ইম্পোর্ট করার পরে, ক্লাস B এর ডেটা এবং ক্লাস A এর পদ্ধতিতে অ্যাক্সেস রয়েছে।
সামগ্রিকভাবে, জাভাতে প্যাকেজ প্রকল্প ফাইলগুলিকে সংগঠিত করতে সাহায্য করে। বড় সিস্টেম তৈরি করার সময় এটি খুব দরকারী কারণ এটি পদ্ধতিগত উপায়ে সমস্ত ফাইল সংরক্ষণের অনুমতি দেয়। তা ছাড়াও, জাভা API প্যাকেজগুলি প্রোগ্রামারদের ইতিমধ্যে বিদ্যমান ক্লাসগুলি ব্যবহার করার অনুমতি দেয়৷
জাভাতে ইন্টারফেস কি?
কখনও কখনও প্রোগ্রামার পদ্ধতির সংজ্ঞা জানেন না। এই পরিস্থিতিতে, প্রোগ্রামার শুধুমাত্র পদ্ধতি ঘোষণা করতে পারেন. একটি বিমূর্ত পদ্ধতি এমন একটি পদ্ধতি যার কোনো সংজ্ঞা নেই। এটা শুধুমাত্র ঘোষণা আছে. যখন অন্তত একটি বিমূর্ত পদ্ধতি থাকে, তখন সেই শ্রেণীটি একটি বিমূর্ত শ্রেণীতে পরিণত হয়। অধিকন্তু, বিমূর্ত শ্রেণিতে বিমূর্ত পদ্ধতির পাশাপাশি অ-বিমূর্ত পদ্ধতিও থাকতে পারে। প্রোগ্রামার বিমূর্ত ক্লাসের বাইরে বস্তু তৈরি করতে পারে না।
যখন একটি ক্লাস একটি বিমূর্ত ক্লাস প্রসারিত করে, তখন নতুন ক্লাসটি বিমূর্ত ক্লাসের সমস্ত বিমূর্ত পদ্ধতি সংজ্ঞায়িত করা উচিত। অন্য কথায়, অনুমান করুন যে বিমূর্ত শ্রেণি A এর একটি বিমূর্ত পদ্ধতি রয়েছে যার নাম প্রদর্শন। ক্লাস B ক্লাস A প্রসারিত করে। তারপর ক্লাস B এর পদ্ধতি প্রদর্শন সংজ্ঞায়িত করা উচিত।
জাভাতে ইন্টারফেসের উদাহরণ
অনুমান করুন যে A এবং B উভয়ই বিমূর্ত শ্রেণী। যদি C শ্রেণী A এবং B কে প্রসারিত করে, সেই ক্লাস C কে উভয় শ্রেণীর বিমূর্ত পদ্ধতি সংজ্ঞায়িত করতে হবে।এটি একাধিক উত্তরাধিকার। জাভা একাধিক উত্তরাধিকার সমর্থন করে না। এটি বাস্তবায়ন করতে, প্রোগ্রামার ইন্টারফেস ব্যবহার করা উচিত। যদি A এবং B ইন্টারফেস হয়, তাহলে C শ্রেণী তাদের বাস্তবায়ন করতে পারে। নিম্নলিখিত উদাহরণ পড়ুন।

চিত্র 03: ইন্টারফেস A

চিত্র 04: ইন্টারফেস B
ইন্টারফেস A-তে ডিসপ্লে1 বিমূর্ত পদ্ধতি রয়েছে এবং ইন্টারফেস B-এর ডিসপ্লে2 বিমূর্ত পদ্ধতি রয়েছে।

চিত্র 05: ক্লাস C
ক্লাস সি A এবং B উভয় ইন্টারফেস প্রয়োগ করে। অতএব, এটি উভয় পদ্ধতি সংজ্ঞায়িত করা উচিত।

চিত্র 06: প্রধান পদ্ধতি
এখন মূল পদ্ধতিতে, C এর একটি অবজেক্ট তৈরি করা এবং উভয় পদ্ধতিতে কল করা সম্ভব। একইভাবে, ইন্টারফেসগুলি জাভাতে একাধিক উত্তরাধিকার প্রয়োগ করতে সহায়তা করে৷
একাধিক উত্তরাধিকার ব্যতীত, ইন্টারফেসগুলি বিমূর্ততা অর্জনে সহায়তা করে। এটি OOP এর একটি প্রধান ধারণা। বিমূর্ততা বাস্তবায়নের বিবরণ লুকিয়ে রাখতে এবং ব্যবহারকারীকে শুধুমাত্র কার্যকারিতা দেখাতে দেয়। আরও, এটি কীভাবে করা হয় তার পরিবর্তে বস্তুটি কী করে তার উপর ফোকাস করার অনুমতি দেয়। যেহেতু একটি ইন্টারফেস বিমূর্ত পদ্ধতি নিয়ে গঠিত, এটি বিমূর্ততা সংরক্ষণাগারে সহায়তা করে।
জাভাতে প্যাকেজ এবং ইন্টারফেসের মধ্যে পার্থক্য কী?
প্যাকেজ হল সম্পর্কিত ক্লাসগুলির একটি গ্রুপ যা অ্যাক্সেস সুরক্ষা এবং নামস্থান পরিচালনা প্রদান করে।ইন্টারফেস হল ক্লাসের অনুরূপ একটি রেফারেন্স টাইপ যা বিমূর্ত পদ্ধতির একটি সংগ্রহ। প্যাকেজ সহজে অ্যাক্সেস এবং বজায় রাখার জন্য ক্লাসগুলিকে পদ্ধতিগতভাবে শ্রেণিবদ্ধ করতে সহায়তা করে। অন্যদিকে, ইন্টারফেস একাধিক উত্তরাধিকার প্রয়োগ করতে এবং বিমূর্ততা অর্জন করতে সহায়তা করে। এটি জাভাতে প্যাকেজ এবং ইন্টারফেসের মধ্যে প্রধান পার্থক্য। আরও, একটি প্যাকেজ লেখার উপায় হল ছোট হাতের অক্ষর যেমন java.util, java.awt। ইন্টারফেসের নাম যদি Area হয়, তাহলে লেখা হয়, ইন্টারফেস এরিয়া।

সারাংশ – জাভাতে প্যাকেজ বনাম ইন্টারফেস
জাভাতে প্যাকেজ এবং ইন্টারফেসের মধ্যে পার্থক্য হল প্যাকেজ ক্লাসগুলিকে সহজে অ্যাক্সেস এবং বজায় রাখার জন্য পদ্ধতিগতভাবে শ্রেণিবদ্ধ করতে সাহায্য করে যখন ইন্টারফেস একাধিক উত্তরাধিকার প্রয়োগ করতে এবং বিমূর্ততা অর্জন করতে সহায়তা করে।