जावा में ओवरलोडिंग विधि के फायदे और नुकसान

ओवरलोडेड विधियाँ एक ही वर्ग में विधियाँ हैं जो समान नाम साझा करती हैं लेकिन विभिन्न चर प्रकारों को तर्क के रूप में स्वीकार करती हैं। उदाहरण के लिए, एक वर्ग में दो अलग-अलग "जोड़ें" विधियां हो सकती हैं: एक जो दो डबल मान स्वीकार करता है, "जोड़ें (डबल ए, डबल बी)," और एक जो दो को स्वीकार करता है पूर्णांक मान, "जोड़ें (int a, int b)।" कंप्यूटर स्वचालित रूप से तय करता है कि किस विधि को रन-टाइम पर कॉल करना है जो चर प्रकारों के आधार पर पास किया जा रहा है तरीका।

FLEXIBILITY

अतिभारित विधियाँ प्रोग्रामर को विभिन्न प्रकार के डेटा के लिए समान विधि को कॉल करने की सुविधा देती हैं। यदि आप गणित कार्यक्रम पर काम कर रहे हैं, उदाहरण के लिए, आप कई "गुणा" कक्षाएं बनाने के लिए ओवरलोडिंग का उपयोग कर सकते हैं, जिनमें से प्रत्येक विभिन्न प्रकार के तर्कों को गुणा करता है: सबसे सरल "गुणा (int a, int b)" दो को गुणा करता है पूर्णांक; अधिक जटिल विधि "गुणा (डबल ए, इंट बी, इंट सी)" एक डबल को दो पूर्णांक से गुणा करती है - तब आप कर सकते थे चर के किसी भी संयोजन पर "गुणा करें" कॉल करें जिसके लिए आपने एक अतिभारित विधि बनाई है और उचित परिणाम प्राप्त करें।

दिन का वीडियो

कंस्ट्रक्टर्स

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

अस्पष्ट संदर्भ

अस्पष्टता से बचने के लिए अतिभारित विधियों को विभिन्न संख्याओं या तर्कों के प्रकारों का उपयोग करना चाहिए। यदि आप एक ही वर्ग में दो विधियाँ बनाते हैं जिनका नाम समान है और दो पूर्णांकों को तर्क के रूप में स्वीकार करते हैं, तो जावा कंपाइलर दोनों के बीच अंतर करने में असमर्थ होगा, भले ही इनपुट चर के अलग-अलग नाम हों। उदाहरण के लिए, "add (int a, int b)" विधि "add (int c, int d)" विधि के समान वर्ग में मौजूद नहीं हो सकती है।

वापसी के प्रकार

आपको प्रत्येक अतिभारित विधि के लिए एक वापसी प्रकार परिभाषित करना होगा। विधियों में अलग-अलग रिटर्न प्रकार हो सकते हैं - उदाहरण के लिए, "जोड़ें (int a, int b)" एक पूर्णांक लौटा सकता है, जबकि "जोड़ें (डबल ए, डबल बी)" एक डबल देता है। हालाँकि, जावा उनके रिटर्न प्रकार के आधार पर दो अलग-अलग तरीकों के बीच अंतर नहीं कर सकता है। इसलिए, "इंट गुणा (डबल ए, डबल बी)" उसी वर्ग में मौजूद नहीं हो सकता है जैसे "डबल गुणा (डबल ए, डबल बी)।"

श्रेणियाँ

हाल का

डेस्कटॉप सेटिंग्स को नए कंप्यूटर पर कैसे कॉपी करें

डेस्कटॉप सेटिंग्स को नए कंप्यूटर पर कैसे कॉपी करें

आपका विंडोज यूजर प्रोफाइल आपकी व्यक्तिगत सेटिंग...

कंप्यूटर में यूजर कॉन्फिगरेशन कैसे प्राप्त करें

कंप्यूटर में यूजर कॉन्फिगरेशन कैसे प्राप्त करें

विंडोज कंप्यूटर पर यूजर कॉन्फ़िगरेशन आपको पीसी ...

कैसे पता करें कि मेरे पति के पास इंटरनेट डेटिंग प्रोफाइल है?

कैसे पता करें कि मेरे पति के पास इंटरनेट डेटिंग प्रोफाइल है?

हालांकि इंटरनेट मजेदार और उपयोगी है, लेकिन यह क...