जावा में इंटरफेस का उपयोग करने के लिए एक शुरुआती गाइड

एक इंटरफ़ेस एक संदर्भ प्रकार है जिसका उपयोग किसी वर्ग के साथ अनुबंध को लागू करने के लिए किया जाता है। एक अनुबंध उन तरीकों को लागू करने के दायित्व को संदर्भित करता है जो एक इंटरफ़ेस परिभाषित करता है।

इंटरफेस उन तरीकों के बीच एक अमूर्तता प्रदान करते हैं जो वे परिभाषित करते हैं और उपयोगकर्ता उन्हें कक्षा में कैसे लागू करता है। इसका एक व्यावहारिक उपयोग मामला एपीआई (एप्लिकेशन प्रोग्रामिंग इंटरफेस) में है।

एपीआई आपके प्रोग्राम को अन्य प्रोग्रामों के साथ संचार करने की अनुमति देते हैं, यह जाने बिना कि उन्हें कैसे लागू किया जाता है। यह मालिकाना कारणों (उस कंपनी के लिए जिसके पास अधिकार हैं) और आपकी ओर से आसान विकास दोनों के लिए महत्वपूर्ण है।

आइए देखें कि जावा इंटरफेस का उपयोग कैसे करें।

इंटरफेस को परिभाषित करना

इंटरफ़ेस घोषित करने के लिए, इंटरफ़ेस नाम से पहले कीवर्ड इंटरफ़ेस रखें

 interface Car{
// constant declarations, if any
int tyres = 4;
// method signatures
int lights (int brightness);
int turn (int tyres, String direction){
// some code
}
}

अपने इंटरफ़ेस हेडर में, आप कीवर्ड इंटरफ़ेस से पहले इसके दृश्यता के स्तर को भी शामिल कर सकते हैं।

इंटरफ़ेस में मान स्थिर हैं। ये मान डिफ़ॉल्ट रूप से सार्वजनिक, स्थिर और अंतिम हैं । इसलिए, इंटरफ़ेस के मुख्य भाग में मान घोषित करते समय इन कीवर्ड का उपयोग करने की कोई आवश्यकता नहीं है।

संबंधित: जावा में वैरिएबल स्कोप कैसे प्रबंधित करें?

एक इंटरफ़ेस के शरीर में डिफ़ॉल्ट, सार, स्थिर विधियाँ भी हो सकती हैं। ये विधियां डिफ़ॉल्ट रूप से public हैं , इसलिए इन एक्सेस संशोधकों को घोषित करते समय उन्हें इंगित करने की कोई आवश्यकता नहीं है।

एक विधि के शरीर के घुंघराले कोष्ठक को छोड़कर सार विधियों की घोषणा की जाती है। ऊपर दिए गए कोड में लाइन 7 देखें। स्टेटिक तरीकों कीवर्ड स्थिर और डिफ़ॉल्ट तरीकों डिफ़ॉल्ट संशोधक के साथ घोषित किया गया है के साथ विधि नाम आगे बढ़ने द्वारा घोषित कर रहे हैं।

अब यह उल्लेख करने का एक अच्छा समय होगा कि आपको इसे लागू करने वाले किसी भी वर्ग में इंटरफ़ेस में घोषित विधियों का उपयोग करना चाहिए। ऐसा नहीं करने से संकलन त्रुटि देकर संकलक "अनुबंध को लागू" कर देगा।

इंटरफेस की इस विशेष संपत्ति में कुछ कमियां हो सकती हैं। एक ऐसे मामले पर विचार करें जहां एक एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) प्रदाता अपने इंटरफेस में और तरीके जोड़ने का फैसला करता है, लेकिन कई ऐप पुराने इंटरफेस पर आधारित होते हैं। अपने कार्यक्रमों में पुराने इंटरफेस का उपयोग करने वाले डेवलपर्स को अपना कोड फिर से लिखना होगा, जो व्यावहारिक नहीं है।

इसलिए, यही वह जगह है जहां डिफ़ॉल्ट विधियां आती हैं। पुराने इंटरफ़ेस संस्करणों के साथ बाइनरी संगतता सुनिश्चित करते हुए वे एपीआई प्रदाताओं को अपने इंटरफेस में और विधियां जोड़ने में सक्षम बनाती हैं।

 default int getDirection ( String coordinates){
// write some code to give a default implementation
}

उपरोक्त विधि से पता चलता है कि getDirection नामक एक डिफ़ॉल्ट विधि कैसे घोषित की जाती है। ध्यान दें कि जब आप इसे लिखते हैं तो आपको एक डिफ़ॉल्ट विधि के कार्यान्वयन को शामिल करना होगा।

इंटरफेस का उपयोग करना

अब हमने जावा में इंटरफेस को परिभाषित कर दिया है, हम आगे बढ़ सकते हैं कि आप उन्हें कैसे लागू कर सकते हैं। आप इसे नीचे दिए गए अनुभाग में पाएंगे।

इंटरफेस लागू करना

एक इंटरफ़ेस को लागू करने के लिए, इस सिंटैक्स का उपयोग करके कीवर्ड इम्प्लीमेंट का उपयोग करें:

 class A implements interface P{
}

याद रखें कि आपको कक्षा में सभी इंटरफ़ेस विधियों का उपयोग करना चाहिए। आप इस नियम को केवल तभी अनदेखा कर सकते हैं जब इंटरफ़ेस में किसी एक विधि को डिफ़ॉल्ट के रूप में परिभाषित किया गया हो।

संबंधित: जावा में लिंक्ड सूचियों का उपयोग करने का परिचय

यदि आप चाहते हैं कि आपकी कक्षा कई इंटरफेस लागू करे, तो आप अपने हेडर घोषणा में अल्पविराम का उपयोग करके उन्हें अलग कर सकते हैं।

उदाहरण:

 class A implements interface P, Q, R{
}

यदि इंटरफ़ेस को लागू करने वाला वर्ग एक उपवर्ग है, तो नीचे दिए गए सिंटैक्स का उपयोग करें:

 class A extends B implements C, D{
}

इंटरफेस जावा में कई विरासतों को सक्षम करते हैं। आमतौर पर, एक वर्ग केवल एक वर्ग (एकल वंशानुक्रम) का विस्तार कर सकता है। इंटरफेस ही एकमात्र तरीका है जिससे जावा कई इनहेरिटेंस को अंजाम दे सकता है।

इंटरफेस अन्य इंटरफेस का भी विस्तार कर सकते हैं, जैसे एक वर्ग दूसरे वर्ग का विस्तार कर सकता है। चाइल्ड इंटरफ़ेस उस इंटरफ़ेस के तरीकों को इनहेरिट करता है जिसका वह विस्तार करता है।

नीचे दिया गया उदाहरण देखें:

 interface A extends B{
}

डेवलपर्स को अपने वर्तमान कार्यक्रमों को संशोधित करने की आवश्यकता के बिना इंटरफ़ेस को संशोधित करने के लिए डिफ़ॉल्ट विधियों का उपयोग करने के अलावा, आप मौजूदा इंटरफेस का विस्तार भी कर सकते हैं।

अब आपको जावा इंटरफेस के बारे में कुछ बुनियादी जानकारी मिल गई है

जावा में इंटरफेस अमूर्तता प्रदर्शित करता है, जो वस्तु-उन्मुख प्रोग्रामिंग के चार स्तंभों में से एक है। बहुरूपता उन चार स्तंभों में से एक है। यह कई रूपों को लेने के लिए एक विधि की क्षमता को संदर्भित करता है।

आप जावा में मेथड ओवरलोडिंग या मेथड ओवरराइडिंग के माध्यम से पॉलीमॉर्फिज्म को लागू कर सकते हैं। आपकी जावा पठन सूची में अगला यह होना चाहिए कि इन कार्यों को कैसे कार्यान्वित किया जाए।