जावा में पैकेज और इंटरफेस के बीच महत्वपूर्ण अंतर यह है कि पैकेज कक्षाओं को आसानी से एक्सेस करने और बनाए रखने के लिए व्यवस्थित रूप से वर्गीकृत करने में मदद करता है जबकि इंटरफेस कई विरासतों को लागू करने और अमूर्तता प्राप्त करने में मदद करता है।
जावा सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक है। जावा का मुख्य लाभ यह है कि यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का समर्थन करता है। यह कार्यप्रणाली सॉफ्टवेयर में वास्तविक दुनिया की वस्तुओं को मॉडलिंग करने की अनुमति देती है। एक वर्ग एक वस्तु बनाने का एक खाका है। प्रत्येक ऑब्जेक्ट में विशेषताओं या गुणों और व्यवहारों का वर्णन करने के तरीकों का वर्णन करने के लिए डेटा या फ़ील्ड होते हैं। यह आलेख जावा में जावा में OOP से संबंधित दो अवधारणाओं पर चर्चा करता है जो पैकेज और इंटरफ़ेस हैं।
जावा में पैकेज क्या है?
Java बड़ी संख्या में कक्षाएं प्रदान करता है। सभी क्लासेस को एक ही फोल्डर में रखना मुश्किल हो सकता है क्योंकि इसे एक्सेस करना मुश्किल है। यह कार्यक्रम प्रबंधन क्षमता को प्रभावित कर सकता है। जावा कक्षाओं को व्यवस्थित करने के लिए संकुल का उपयोग करता है। यह एक फ़ोल्डर के समान है। जावा एपीआई समूहों को कार्यक्षमता के अनुसार विभिन्न पैकेजों में वर्गीकृत करता है। इसलिए, प्रत्येक पैकेज में संबंधित वर्गों का एक सेट होता है।
जावा में संकुल का उदाहरण
कुछ उदाहरण पैकेज इस प्रकार हैं। Java.io पैकेज में इनपुट, आउटपुट सपोर्टिंग क्लासेस शामिल हैं। इसमें फ़ाइल, प्रिंटस्ट्रीम, बफ़रइनपुटस्ट्रीम आदि शामिल हैं। java.net पैकेज में नेटवर्किंग से संबंधित कक्षाएं शामिल हैं। कुछ उदाहरण URL, सॉकेट, सर्वरसॉकेट हैं। Java.awt पैकेज में ग्राफिकल यूजर इंटरफेस बनाने के लिए आवश्यक सभी वर्ग शामिल हैं। वे कुछ जावा एपीआई पैकेज हैं।
जब प्रोग्रामर प्रोग्राम में एक निश्चित वर्ग का उपयोग करना चाहता है, तो उसे उस पैकेज को आयात करना चाहिए। यदि प्रोग्रामर java.io पैकेज में BufferInputStream वर्ग का उपयोग करना चाहता है, तो उसे आयात विवरण इस प्रकार लिखना चाहिए।
आयात java.util. BufferInoutStream;
नीचे दिए गए स्टेटमेंट में यूज पैकेज में सभी क्लासेस इम्पोर्ट होंगी।
आयात java.util.;
उपयोगकर्ता परिभाषित पैकेज बनाना भी संभव है।
पैकेज कर्मचारी;
पब्लिक क्लास कर्मचारी {
}
उपरोक्त उदाहरण के अनुसार, कर्मचारी पैकेज का नाम है। कर्मचारी वर्ग कर्मचारी पैकेज का एक हिस्सा है। यह फ़ाइल कर्मचारी पैकेज में कर्मचारी.जावा के रूप में सहेजी जाती है।
इसके अलावा, एक सार्वजनिक वर्ग को एक पैकेज से दूसरे पैकेज में आयात करना संभव है। निम्नलिखित उदाहरण देखें।
चित्र 01: कक्षा ए
चित्र 02: कक्षा बी
कक्षा ए पैकेज 1 में है, और इसमें डिस्प्ले नामक सार्वजनिक विधि शामिल है। क्लास बी पैकेज 2 में है, और इसमें मुख्य विधि है। भले ही वे अलग पैकेज में हों; क्लास बी पैकेज 1 आयात करके क्लास ए का ऑब्जेक्ट बना सकता है। पैकेज 1 आयात करने के बाद, कक्षा बी के पास कक्षा ए के डेटा और विधियों तक पहुंच है।
कुल मिलाकर, जावा में पैकेज प्रोजेक्ट फाइलों को व्यवस्थित करने में मदद करता है। बड़ी प्रणाली विकसित करते समय यह बहुत उपयोगी है क्योंकि यह सभी फाइलों को व्यवस्थित तरीके से संग्रहीत करने की अनुमति देता है। इसके अलावा, जावा एपीआई पैकेज प्रोग्रामर को पहले से मौजूद कक्षाओं का उपयोग करने की अनुमति देता है।
जावा में इंटरफेस क्या है?
कभी-कभी प्रोग्रामर को विधि की परिभाषा नहीं पता होती है। इस स्थिति में, प्रोग्रामर केवल विधि की घोषणा कर सकता है। एक अमूर्त विधि एक ऐसी विधि है जिसकी कोई परिभाषा नहीं है। इसमें केवल घोषणा है। जब कम से कम एक अमूर्त विधि होती है, तो वह वर्ग एक अमूर्त वर्ग बन जाता है। इसके अलावा, अमूर्त वर्ग में अमूर्त विधियों के साथ-साथ गैर-अमूर्त विधियाँ भी हो सकती हैं। प्रोग्रामर एब्स्ट्रैक्ट क्लासेस से ऑब्जेक्ट नहीं बना सकता।
जब एक वर्ग एक अमूर्त वर्ग का विस्तार करता है, तो नए वर्ग को अमूर्त वर्ग में सभी अमूर्त पद्धति को परिभाषित करना चाहिए। दूसरे शब्दों में, मान लें कि अमूर्त वर्ग ए में एक अमूर्त विधि है जिसे डिस्प्ले कहा जाता है। क्लास बी क्लास ए का विस्तार करता है। फिर क्लास बी को मेथड डिस्प्ले को परिभाषित करना चाहिए।
जावा में इंटरफेस का उदाहरण
मान लें कि ए और बी दोनों अमूर्त वर्ग हैं। यदि कक्षा सी ए और बी का विस्तार कर रही है, तो उस वर्ग सी को दोनों वर्गों के अमूर्त तरीकों को परिभाषित करना होगा।यह एकाधिक विरासत है। जावा एकाधिक वंशानुक्रम का समर्थन नहीं करता है। इसे लागू करने के लिए, प्रोग्रामर को इंटरफेस का उपयोग करना चाहिए। यदि ए और बी इंटरफेस हैं, तो कक्षा सी उन्हें लागू कर सकती है। निम्नलिखित उदाहरण देखें।
चित्र 03: इंटरफ़ेस ए
चित्र 04: इंटरफ़ेस बी
इंटरफ़ेस A में डिस्प्ले1 एब्स्ट्रैक्ट मेथड है, और इंटरफ़ेस B में डिस्प्ले2 एब्स्ट्रैक्ट मेथड है।
चित्र 05: कक्षा सी
क्लास सी ए और बी दोनों इंटरफेस को लागू करता है। इसलिए, इसे दोनों विधियों को परिभाषित करना चाहिए।
चित्र 06: मुख्य विधि
अब मुख्य विधि में, C का ऑब्जेक्ट बनाना और दोनों विधियों को कॉल करना संभव है। इसी तरह, इंटरफेस जावा में मल्टीपल इनहेरिटेंस को लागू करने में मदद करते हैं।
एकाधिक विरासत के अलावा, इंटरफेस अमूर्तता प्राप्त करने में मदद करते हैं। यह OOP में एक प्रमुख अवधारणा है। अमूर्त कार्यान्वयन विवरण को छिपाने और उपयोगकर्ता को केवल कार्यक्षमता दिखाने की अनुमति देता है। इसके अलावा, यह इस बात पर ध्यान केंद्रित करने की अनुमति देता है कि वस्तु कैसे की जाती है इसके बजाय क्या करती है। चूंकि एक इंटरफ़ेस में अमूर्त विधियाँ होती हैं, यह अमूर्तता को संग्रहित करने में मदद करता है।
जावा में पैकेज और इंटरफेस में क्या अंतर है?
पैकेज संबंधित वर्गों का एक समूह है जो एक्सेस सुरक्षा और नेमस्पेस प्रबंधन प्रदान करता है।इंटरफ़ेस वर्ग के समान एक संदर्भ प्रकार है जो अमूर्त विधियों का संग्रह है। पैकेज उन्हें आसानी से एक्सेस करने और बनाए रखने के लिए कक्षाओं को व्यवस्थित रूप से वर्गीकृत करने में मदद करता है। दूसरी ओर, इंटरफ़ेस कई विरासतों को लागू करने और अमूर्तता प्राप्त करने में मदद करता है। जावा में पैकेज और इंटरफेस के बीच यह मुख्य अंतर है। इसके अलावा, पैकेज लिखने का तरीका छोटे अक्षरों में है जैसे java.util, java.awt। यदि इंटरफ़ेस का नाम क्षेत्र है, तो इसे इंटरफ़ेस क्षेत्र में लिखा जाता है।
सारांश - जावा में पैकेज बनाम इंटरफ़ेस
जावा में पैकेज और इंटरफेस के बीच अंतर यह है कि पैकेज कक्षाओं को आसानी से एक्सेस करने और बनाए रखने के लिए व्यवस्थित रूप से वर्गीकृत करने में मदद करता है जबकि इंटरफेस कई विरासतों को लागू करने और अमूर्तता प्राप्त करने में मदद करता है।