तुलना चार्ट
तुलना के लिए आधार | संकुल | इंटरफेस |
---|---|---|
बुनियादी | पैकेज कक्षाओं और / या इंटरफेस का एक समूह है। | Interfaces अमूर्त विधियों और निरंतर क्षेत्रों का एक समूह है। |
कीवर्ड | पैकेज "पैकेज" कीवर्ड का उपयोग करके बनाए जाते हैं। | इंटरफ़ेस "इंटरफ़ेस" कीवर्ड का उपयोग करके बनाया गया है। |
वाक्य - विन्यास | पैकेज package_name; सार्वजनिक वर्ग class_name { । (कक्षा का निकाय) । } | इंटरफ़ेस इंटरफ़ेस_नाम { चर घोषणा; विधि घोषणा; } |
पहुंच | एक पैकेज आयात किया जा सकता है | एक इंटरफ़ेस को दूसरे इंटरफ़ेस द्वारा बढ़ाया जा सकता है और कक्षा द्वारा कार्यान्वित किया जा सकता है। |
एक्सेस कीवर्ड | पैकेज "आयात" कीवर्ड का उपयोग करके आयात किया जा सकता है। | "कार्यान्वयन" कीवर्ड का उपयोग करके इंटरफेस को लागू किया जा सकता है। |
पैकेज की परिभाषा
संकुल विभिन्न वर्गों और इंटरफेस के संग्रह या समूह हैं। संकुल में वर्ग एक-दूसरे से किसी न किसी दायरे में या वंशानुक्रम से संबंधित होते हैं। आप अपना पैकेज भी बना सकते हैं और इसे अपने कार्यक्रम के लिए उपयोग कर सकते हैं।
पैकेज बनाना
पैकेज बनाने के लिए बस निम्नलिखित चरणों का पालन करें।
- एक फ़ाइल खोलें और फिर फ़ाइल के शीर्ष पर पैकेज का नाम घोषित करें, जैसे [पैकेज package_name; ] पैकेज का नाम वह नाम है जिसे आप पैकेज को देना चाहते हैं।
- अगला, आप एक वर्ग को परिभाषित करते हैं जिसे आप पैकेज में रखना चाहते हैं, और याद रखें कि आप इसे सार्वजनिक घोषित करते हैं।
- फ़ाइल को .java फ़ाइल के रूप में सहेजें और फिर फ़ाइल संकलित करें, फिर उस फ़ाइल के लिए ".class" प्राप्त करें।
- इस फाइल के लिए एक पैकेज बनाने के लिए इस्तेमाल किया गया कमांड "javac -d" है। file_name.java। आप देख सकते हैं कि पैकेज मौजूदा निर्देशिका में ".class" फ़ाइल से बना है। इसे मूल निर्देशिका में रखने के लिए “javac -d” का उपयोग करें। । file_name.java ”कमांड।
- आप सबपैकेज नाम को [पैकेज package_name1 के रूप में घोषित करके एक सबपैकेज भी बना सकते हैं। package_name2; ] फ़ाइल के शीर्ष पर।
पैकेज Mypackage; सार्वजनिक वर्ग myclass {public void displayMypackage () {system.out.println ("विधि प्रदर्शन पैकेज के वर्ग myclass का पैकेज Mackackage"); }
पैकेज का उपयोग करना
निर्देशिका में निर्मित या उपलब्ध पैकेज को आयात विवरण का उपयोग करके प्रोग्राम में उपयोग किया जा सकता है। आपके प्रोग्राम में किसी भी पैकेज को आयात करने के लिए उपयोग किया जाने वाला कीवर्ड "आयात" है। आयात विवरण दो तरीकों से लिखा जा सकता है, या आप कह सकते हैं कि किसी भी पैकेज तक पहुँचने के दो तरीके हैं। सबसे पहले, यदि आप किसी विशेष वर्ग का उपयोग पैकेज से करना चाहते हैं, तो "आयात" कीवर्ड पैकेज नाम के बाद और उसके बाद डॉट ऑपरेटर और वर्ग नाम जिसे आप पैकेज से उपयोग करना चाहते हैं। दूसरा, यदि आप कई वर्गों का उपयोग करना चाहते हैं जो संकुल में समाहित हैं, तो आयात खोजशब्द के बाद संकुल नाम आगे आता है और इसके बाद डॉट और "ऑपरेटर" होता है।
आयात package_name कक्षा का नाम; या import_name पैकेज। *;
उपरोक्त कोड में, आप * संकेत को देख सकते हैं जो इंगित करता है कि दूसरी विधि पैकेजों में निहित सभी वर्गों को आयात करती है।
अब, उदाहरण के साथ पैकेज के उपयोग को देखते हैं।
आयात Mackackage। myclass {class TestMypackage {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // आउटपुट पद्धति डिस्प्ले पैकेज मायकेज की क्लास मायक्लास का निर्माण।
ऊपर दिए गए कोड में, क्लास TestMypackage ने पैकेज Mypackage को आयात कर लिया है और अपने DisplayMypackage () विधि का उपयोग किया है।
इंटरफ़ेस की परिभाषा
इंटरफ़ेस एक तरह का एक वर्ग है, लेकिन, इस अर्थ में भिन्न है कि इंटरफ़ेस में घोषित किए गए तरीके अमूर्त हैं, जिसका अर्थ है कि विधियों को केवल घोषित किया गया है लेकिन परिभाषित नहीं किया गया है। इंटरफ़ेस के क्षेत्र हमेशा सार्वजनिक, स्थिर, अंतिम होते हैं। घोषणा के समय खेतों को आरंभीकृत किया जाना चाहिए। इंटरफ़ेस द्वारा घोषित तरीकों को उस वर्ग द्वारा परिभाषित किया गया है जो अपनी आवश्यकता के अनुसार उस इंटरफ़ेस को लागू करता है। चूँकि इंटरफ़ेस में विधियाँ कोई कार्य नहीं करती हैं, इसलिए इंटरफ़ेस की कोई भी वस्तु बनाने का कोई फायदा नहीं है। इसलिए, इंटरफ़ेस के लिए कोई ऑब्जेक्ट नहीं बनाया जा सकता है।
इंटरफ़ेस अन्य इंटरफ़ेस को भी इनहेरिट कर सकता है लेकिन, इस तरह के इंटरफ़ेस को इनहेरिट करने वाले वर्ग को इनहेरिटेड इंटरफ़ेस के सभी तरीकों को भी लागू करना होगा। चूँकि इंटरफ़ेस में उनकी घोषणा के समय फ़ील्ड्स को इनिशियलाइज़ किया जाता है, इसलिए इंटरफ़ेस में कंस्ट्रक्टर की कोई आवश्यकता नहीं होती है, इसलिए इंटरफ़ेस में कोई कंस्ट्रक्टर नहीं होता है। आइए एक इंटरफ़ेस बनाने और उपयोग करने का उदाहरण देखें।
इंटरफ़ेस क्षेत्र {फ्लोट पी = 3.14; फ्लोट find_area (फ्लोट ए, फ्लोट बी) {} क्लास सर्कल इम्प्लीमेंट्स एरिया {फ्लोट find_area (फ्लोट ए, फ्लोट बी) {रिटर्न (पीआई * ए * ए); } वर्ग आकृतियाँ {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स]] {क्षेत्र A = नया क्षेत्र (); सर्कल C = नया सर्कल (); एक = C; फ्लोट F = क्षेत्र। find_area (10, 10); system.out.println ("सर्कल का क्षेत्र है:" + F); }
उपरोक्त कोड में, हमने एक इंटरफ़ेस एरिया बनाया था, और क्लास सर्कल ने इंटरफ़ेस एरिया लागू किया है। फ़ील्ड "पी" को इसकी घोषणा के समय इंटरफ़ेस में आरंभीकृत किया गया है। क्लास सर्कल ने अपनी आवश्यकता के अनुसार वर्ग क्षेत्र की सार पद्धति को परिभाषित किया है।
जावा में पैकेज और इंटरफेस के बीच महत्वपूर्ण अंतर
- एक पैकेज कक्षाओं और इंटरफेस का एक समूह है जबकि, एक इंटरफ़ेस अमूर्त विधियों का एक समूह है।
- पैकेज एक कीवर्ड पैकेज का उपयोग करके बनाया गया है, जबकि एक इंटरफेस एक कीवर्ड इंटरफेस का उपयोग करके बनाया गया है ।
- यदि एक पैकेज के अंदर एक वर्ग या एक इंटरफ़ेस को आयात करने के लिए पैकेजिस का उपयोग किया जाना है, जबकि एक इंटरफ़ेस को लागू किया जाना है।
निष्कर्ष:
दोनों पैकेज और इंटरफ़ेस कंटेनर हैं। पैकेज कोड के आकार को कम कर देता है क्योंकि हम कक्षा को फिर से परिभाषित करने के बजाय उपयोग किए जाने वाले आयात करते हैं। जबकि इंटरफ़ेस कई वारदातों के दौरान होने वाले भ्रम को कम करता है क्योंकि कई विरासतों के मामले में वंशानुक्रम वर्ग को यह तय नहीं करना होता है कि उसे किस विधि की परिभाषा करनी चाहिए, बजाय इसके कि वह अपने को परिभाषित करे।