जावा-विधि ओवरलोडिंग क्या हैं?

विधि ओवरलोडिंग method overloading in java in hindi


जावा सीखने की इस शृंखला में हमने अब तक, जावा से जुड़े कई तथ्यों को जाना।

जावा में लूपिंग, डिसिजन मेकिंग स्टेटमेंट्स, कंस्ट्रक्टर, जावा ऐरे (java array) आदि के बारें में जानकारी प्राप्त की। इस लेख में ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग से जुड़े एक महत्वपूर्ण पहलु विधि ओवरलोडिंग (method overloading) के बारें में हम जानेंगे।

विधि ओवरलोडिंग (method overloading in java in hindi)

जब कभी भी, एक क्लास में डिक्लेअर किए गए फंक्शन्स में, एक से ज्यादा फंक्शन्स समान नाम साझा करते हैं। जिनमें उनको पास किए गए पैरामीटर्स(आर्गुमेंट्स) की संख्या समान या भिन्न हो सकती हैं।

जब ऐसे समान नाम वाले फंक्शन्स का जब इस्तेमाल किया जाता हैं, तब उस प्रक्रिया को कंप्यूटर साइंस में फंक्शन ओवरलोडिंग(मेथड ओवरलोडिंग) कहा जाता हैं।

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

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

क्योंकि इस प्रक्रिया में कम्पाइलर को वक्त लगता हैं, सही फंक्शन को एक्सीक्यूट करने में, इसीलिए इसे ओवरलोडिंग कहा जाता हैं।

सिंटेक्स

class class_name

{

DataType  functionName()

{

……………

}

DataType functionName(datatype1 variable)

{

… …

}

DataType functionName(datatype1 variable, datatype2 variable)

{

… …

}

DataType FnctionName(datatype2 variable)

{

… …

}

}

उदाहरण

class Example

{

int add(int a, int b)

{

return(a +b);

}

float add(float a, float b)

{

return(a +b);

}

char add(char a, char b)

{

return(a +b);

}

public static void main(String args[])

{

Example obj=new Example();

Obj.add(4,6);

Obj.add(3।4, 6।1);

Obj.add(‘O’, ‘K’);

}

}

स्पष्टीकरण

जैसा की आप देख सकते हैं, हमनें यहाँ एक क्लास ‘Example’ परिभाषित(डिफाइन) किया है। क्लास एग्जामपल में हमनें तीन फंक्शन डिक्लेअर किए हैं, जिनका नाम हमनें समान(add) दिया हैं।

लेकिन तीनो फंक्शन्स के डाटा टाइप्स अगर आप देखें तो वह सभी अलग अलग हैं। जैसे पहला फंक्शन का डाटा टाइप इन्टिजर हैं। दुसरे और तीसरे फंक्शन का डाटा टाइप फ्लोट और करैक्टर हैं।

जब ‘add’ फंक्शन को कॉल किया जाएगा तब, जावा कम्पाइलर उनको पास किए गए पैरामीटर्स (आर्गुमेंट्स) के आधार पर सही फंक्शन को कॉल करेगा।

सबसे निचे मेन फंक्शन में हमने Example क्लास का ऑब्जेक्ट क्रिएट किया हैं, उसे बाद ऑब्जेक्ट की मदत से हमने क्लास के फंक्शन्स को कॉल किया हैं। फंक्शन्स को कॉल करते समय हमने हर बार अलग अलग पैरामीटर्स पास किए हैं, जिनका डाटा टाइप भी एक दुसरे से भिन्न हैं।

Obj.add(4,6); इस जावा स्टेटमेंट की मदत से हमने add फंक्शन को कॉल किया हैं। लेकिन हमने इस बार जो पैरामीटर्स पास किए हैं, 4 और 6 यह इन्टिजर्स हैं। अब जावा कम्पाइलर हमारे पास किए गए पैरामीटर्स को लेकर हर फंक्शन के साथ तुलना करेगा। देखेगा की किसी add फंक्शन का डाटा टाइप इन्टिजर हैं क्या, अगर हैं तो जावा कम्पाइलर उस विशिष्ट फंक्शन को एक्सीक्यूट करेगा।

इस लेख के बारे में यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।

कोई जवाब दें

Please enter your comment!
Please enter your name here