इस आर्टिकल में हम जावा Method Overloading क्या हैं? | Method Overloading in Java in Hindi के बारे में जानेंगे।
Method Overloading क्या हैं? | Method Overloading in Java in Hindi
यदि किसी class में समान name वाले कई methods हैं, लेकिन parameters में different हैं, तो इसे Method Overloading के रूप में जाना जाता है।
यदि हमें केवल एक operation करना है, तो methods के समान name होने से program की readability बढ़ जाती है।
मान लीजिए कि आपको दी गई numbers का addition करना है, लेकिन arguments की संख्या कितनी भी हो सकती है, यदि आप method लिखते हैं जैसे a(int,int) दो parameters के लिए, और b(int,int,int) तीन parameters के लिए तो यह आपके साथ-साथ अन्य प्रोग्रामरों के लिए method के व्यवहार को समझना मुश्किल हो सकता है क्योंकि इसका नाम अलग है।
इसलिए, हम प्रोग्राम को जल्दी से समझने के लिए method overloading करते हैं।
- Java में Method क्या हैं?| What is Method in Java in Hindi
- Inheritance क्या हैं? | what is Inheritance in Java in Hindi
Advantage of method overloading | method overloading के लाभ
Method Overloading से Program की Readability बढ़ जाती है।
जावा में method को overload करने के दो तरीके हैं
- arguments की number बदलकर
- data type को बदलकर
जावा में, केवल Method के रिटर्न type को बदलकर Method Overloading संभव नहीं है।
1) Method Overloading: changing no. of arguments | arguments की number बदलकर
इस उदाहरण में, हमने दो मेथड बनाए हैं, पहला add() दो नंबरों का जोड़ करता है और दूसरा add method तीन नंबरों का जोड़ करता है।
इस उदाहरण में, हम static methods बना रहे हैं ताकि हमें कॉलिंग मेथड्स के लिए इंस्टेंस बनाने की जरूरत न पड़े।
class Adder{
static int add(int a,int b){return a+b;}
static int add(int a,int b,int c){return a+b+c;}
}
class TestOverloading1{
public static void main(String[] args){
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(11,11,11));
}}
Output:
22
33
2) Method Overloading: changing data type of arguments | data type को बदलकर
इस उदाहरण में, हमने दो विधियाँ बनाई हैं जो डेटा प्रकार में differs हैं। पहली add method दो integer arguments receives करता है और दूसरी add method दो double arguments प्राप्त करता है।
class Adder{
static int add(int a, int b){return a+b;}
static double add(double a, double b){return a+b;}
}
class TestOverloading2{
public static void main(String[] args){
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(12.3,12.6));
}}
Output:
22
24.9
Q) केवल रिटर्न type की विधि को बदलकर Method Overloading क्यों संभव नहीं है?
जावा में, केवल अस्पष्टता के कारण विधि के return type को बदलकर method overloading संभव नहीं है। आइए देखें कि अस्पष्टता कैसे हो सकती है।
class Adder{
static int add(int a,int b){return a+b;}
static double add(int a,int b){return a+b;}
}
class TestOverloading3{
public static void main(String[] args){
System.out.println(Adder.add(11,11));//ambiguity
}}
Output:
Compile Time Error: method add(int,int) is already defined in class Adder
System.out.println (Adder.add (11,11)); // यहां, जावा कैसे निर्धारित कर सकता है कि किस sum() method को call किया गया हैं।
Note: Compile Time Error रन टाइम Error से बेहतर है। इसलिए, यदि आप समान parameters वाले समान method की declare करते हैं, तो जावा कंपाइलर renders समय error प्रस्तुत करता है।
क्या हम जावा main() method को overload कर सकते हैं?
हाँ, method overloading द्वारा। method overloading के द्वारा आप एक class में कई main methods बना सकते हैं। लेकिन JVM main() method को कॉल करता है जो string array को केवल arguments के रूप में प्राप्त करता है। आइए सरल उदाहरण देखें-
class TestOverloading4{
public static void main(String[] args){System.out.println("main with String[]");}
public static void main(String args){System.out.println("main with String");}
public static void main(){System.out.println("main without args");}
}
Output:
main with String[]
Method Overloading and Type Promotion
यदि कोई matching खाने वाला datatype नहीं मिलता है तो एक प्रकार को दूसरे प्रकार से implicitly किया जाता है। आइए नीचे दिए गए चित्र से concept को समझते हैं:
जैसा कि ऊपर चित्र में दिखाया गया है, byte को short, int, long, float या double में promoted किया जा सकता है। छोटे डेटाटाइप को int, long, float या double में promote किया जा सकता है। चार datatype को int,long,float या double वगैरह में promote किया जा सकता है।
Type Promotion के साथ Method Overloading का उदाहरण
class OverloadingCalculation1{
void sum(int a,long b){System.out.println(a+b);}
void sum(int a,int b,int c){System.out.println(a+b+c);}
public static void main(String args[]){
OverloadingCalculation1 obj=new OverloadingCalculation1();
obj.sum(20,20);//now second int literal will be promoted to long
obj.sum(20,20,20);
}
}
Output
40
60
- Constructors क्या हैं? | What is Constructors in Java in Hindi
- php function kya hain | what is function in php in hindi
- what is DNS in hindi? | Domain name system क्या हैं?
निष्कर्ष
आशा करता हूँ कि आज के इस आर्टिकल में Method Overloading क्या हैं? | Method Overloading in Java in Hindi से सम्बंधित आपके सारे आंसर मिल गए होंगे। Read More
आज के इस आर्टिकल में हमने जाना कि Method Overloading क्या हैं? | Method Overloading in Java in Hindi इस आर्टिकल से संबधित आपका कोई प्रश्न हैं तो आप comment करें में आपकी कमेंट का जबाब जरूर दूंगा।
ऐसे ही IT, Computer Science से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर लीजिये | जिससे आपको हमारी आने वाले नये आर्किल की notification प्राप्त हो सके।
अगर जानकारी अच्छी लगी हो तो अपने दोस्तों और class mate के साथ ये जानकारी जरूर शेयर करें जिससे उनकी भी हेल्प हो सके।
FAQ प्रश्न-
Method Overloading क्या हैं? | Method Overloading in Java in Hindi
यदि किसी class में समान name वाले कई methods हैं, लेकिन parameters में different हैं, तो इसे Method Overloading के रूप में जाना जाता है।