इस आर्टिकल के सहायक लेखक (co-author) हमारी बहुत ही अनुभवी एडिटर और रिसर्चर्स (researchers) टीम से हैं जो इस आर्टिकल में शामिल प्रत्येक जानकारी की सटीकता और व्यापकता की अच्छी तरह से जाँच करते हैं।
How.com.vn's Content Management Team बहुत ही सावधानी से हमारे एडिटोरियल स्टाफ (editorial staff) द्वारा किये गए कार्य को मॉनिटर करती है ये सुनिश्चित करने के लिए कि सभी आर्टिकल्स में दी गई जानकारी उच्च गुणवत्ता की है कि नहीं।
यह आर्टिकल १,३२० बार देखा गया है।
जब जावा में प्रोग्रामिंग करना शुरू करते हैं, तब आपके सामने सीखने के लायक कई सारे नए कान्सैप्ट रहते हैं। इसमें क्लास (classes), मेथड्स (methods), एक्सेप्शन (exceptions), कंस्ट्रक्टर्स (constructors), वेरिएबल्स (variables) और भी कई कान्सैप्ट होते हैं और ये सभी शायद आपको बहुत मुश्किल भी लग सकते हैं। इसलिए, अच्छा होगा कि आप एक-एक करके चीजों को सीखें। ये विकिहाउ गाइड आपको जावा में मेथड को कॉल करना सिखाएगी।
- मेथड क्या है, समझें: जावा में, मेथड स्टेटमेंट्स की एक सीरीज होती है, जिससे एक फंक्शन तैयार होता है। जैसे ही मेथड डिक्लेयर हो जाए, फिर फंक्शन को एग्जीक्यूट करने के लिए इसे कोड के किसी भी पार्ट से कॉल किया जा सकता है। ये किसी एक ही कोड को बार-बार इस्तेमाल करने का एक अच्छा, उपयोगी तरीका होता है। ये सिम्पल मेथड का एक उदाहरण दिया गया है।
public static void methodName() { System.out.println("This is a method");}
- मेथड के लिए क्लास एक्सेस डिक्लेयर करें: जब जावा में मेथड को डिक्लेयर करें, तब आपको डिक्लेयर करना होगा कि कौन सी क्लासेस मेथड को एक्सेस कर सकती हैं। ऊपर दिए उदाहरण में, एक्सेस को "Public" डिक्लेयर किया गया है। ऐसे तीन एक्सेस मॉडिफ़ायर हैं, जिनसे आप मेथड को डिक्लेयर कर सकते हैं:
- Public: मेथड नेम के सामने एक्सेस मॉडिफ़ायर को "public" डिक्लेयर करके उस मेथड को कहीं से भी कॉल किया जा सकता है।
- Protected: "protected" एक्सेस मॉडिफ़ायर, मेथड को केवल उसके क्लास और सब्सटेन्स के अंदर ही कॉल करने देता है।
- Private: अगर मेथड को
private
डिक्लेयर किया गया है, तो मेथड को केवल क्लास के अंदर ही कॉल किया जा सकता है। इसे डिफ़ाल्ट, या पैकेज-प्राइवेट कहा जाता है। इसका मतलब कि केवल उसी पैकेज की क्लास ही उस मेथड को कॉल कर सकती हैं।
- उस क्लास को डिक्लेयर करें, जिससे मेथड संबन्धित है: ऊपर दिए उदाहरण में, दूसरे कीवर्ड "static" का मतलब कि मेथड क्लास से संबन्धित है और ये क्लास (ऑब्जेक्ट) का कोई इन्सटेन्स नहीं है। स्टेटिक मेथड को क्लास नेम का यूज करके कॉल किया जाना चाहिए: "ExampleClass.methodExample()"
- अगर कीवर्ड "static" को यूज नहीं किया गया है, तो मेथड को केवल एक ऑब्जेक्ट के जरिए ही इनवोक किया जा सकता है। जैसे , अगर क्लास अगर क्लास को "ExampleObject" कॉल किया गया और इसमें एक कंस्ट्रक्टर है (ऑब्जेक्ट के लिए), तो हम "ExampleObject obj = new ExampleObject();" लिखकर एक नया ऑब्जेक्ट बना सकते हैं और इस तरह से: "obj.methodExample();" का इस्तेमाल करके मेथड को कॉल कर सकते हैं।
- रिटर्न वैल्यू को डिक्लेयर करें: रिटर्न वैल्यू मेथड से रिटर्न होने वाली वैल्यू के नेम को डिक्लेयर करती है। ऊपर के उदाहरण के लिए "void" शब्द का मतलब कि मेथड कुछ भी रिटर्न नहीं करेगी।
- अगर आप मेथड से कुछ रिटर्न कराना चाहते हैं, तो सिर्फ वर्ड "void<" को उस ऑब्जेक्ट (या प्रिमिटिव टाइप) के एक डेटा टाइप (प्रिमिटिव या रेफरेंस टाइप) के साथ में रिटर्न करें। प्रिमिटिव टाइप में int, float, double, और भी कुछ शामिल हैं। फिर "return" साथ में उस टाइप के एक ऑब्जेक्ट को मेथड के कोड के आखिर में एड करें।
- जब कुछ रिटर्न करने वाली मेथड को कॉल करें, तब आप वो जो रिटर्न करें, उसे यूज कर सकते हैं। जैसे, अगर एक मेथड "someMethod()" एक इंटीजर (एक नंबर) रिटर्न करती है, फिर आप कोड: "int a = someMethod();" का इस्तेमाल करके उस इंटीजर को सेट कर सकते हैं, जिस पर ये रिटर्न होगा।
- मेथड नेम को डिक्लेयर करें: जब आप मेथड को एक्सेस करने वाली क्लास को डिक्लेयर कर लें, उसके बाद, ये जिस क्लास से और रिटर्न वैल्यू से संबन्धित है, आपको मेथड को एक नेम देना होगा, ताकि उसे कॉल किया जा सके। मेथड को एक नेम देने के लिए, बस एक ओपन और क्लोज्ड पेरेन्थिसिस के साथ में मेथड का नाम टाइप करें। ऊपर वाले उदाहरण में "someMethod()" और "methodName()" शामिल है। फिर आप सारे मेथड स्टेटमेंट्स को ओपन और क्लोज कर्ली ब्रैकेट "{}" के अंदर इनपुट करेंगे।
- मेथड को कॉल करें: मेथड को कॉल करने के लिए, आपको केवल ओपन और क्लोज्ड पेरेन्थिसिस के बाद उस लाइन में मेथड का नेम लिखेंगे, जिसमें आप मेथड को एग्जीक्यूट करना चाहते हैं। बस इतना ध्यान रखें कि आप केवल एक ऐसी क्लास के अंदर मेथड को कॉल कर रहे हैं, जिसे उस पर एक्सेस है। ये उस मेथड का एक उदाहरण है, जिसे एक क्लास के अंदर डिक्लेयर और फिर कॉल किया गया है:[१]
public class className { public static void methodName(){ System.out.println("This is a method");} public static void main(String[] args) { methodName(); }}
- मेथड में पैरामीटर एड करें (अगर जरूरत हो): कुछ मेथड्स को एक इंटीजर (एक नंबर) या रेफरेंस टाइप (जैसे कि ऑब्जेक्ट के नेम) जैसे एक पैरामीटर की जरूरत होती है। अगर एक मेथड के लिए एक पैरामीटर की जरूरत है, तो आप पैरामीटर को सीधे बस मेथड के नेम बाद ओपन और क्लोज्ड पैरामीटर के बीच में टाइप कर सकते हैं। एक मेथड, जिसे एक इंटीजर के इंटीजर पैरामीटर की जरूरत होती है, वो "someMethod(int a)" या ऐसा ही दिखाई देगी। एक मेथड, जो रेफरेंस टाइप यूज करती है, वो "someMethod(Object obj)" या ऐसी ही नजर आएगी।
- एक पैरामीटर के साथ एक मेथड को कॉल करें: जब ऐसी मेथड को कॉल करें, जिसके लिए पैरामीटर की जरूरत है, आप बस मेथड नेम के बाद पेरेन्थिसिस में पैरामीटर के नेम को एड करेंगे। जैसे: "someMethod(5)" या "someMethod(n)" अगर "n" एक इंटीजर है। अगर मेथड को एक रेफरेंस ऑब्जेक्ट की जरूरत है, तो ओपन और क्लोज्ड पेरेन्थिसिस के बीच में सीधे ऑब्जेक्ट के नेम को एंटर करें। जैसे, "someMethod(4, thing)" है।
- एक मेथड में कई पैरामीटर एड करें: मेथड्स में खाली पैरामीटर्स भी रह सकते हैं, जिन्हें केवल कॉमा से सेपरेट किया जाता है। इस उदाहरण में, दो इंटीजर को एक-साथ एड करने और रिटर्न मेथड में उनका जोड़ रिटर्न करने के लिए एक मेथड तैयार की गई है। जब मेथड को कॉल किया जाता है, तब पैरामीटर्स की तरह दिए दोनों इंटीजर्स एक-साथ जुड़ जाएंगे। जब प्रोग्राम रन होता है, आपको एक आउटपुट मिलेगा, जो ऐसा "The sum of A and B is 50" कहेगा:
public class myClass {public static void sum(int a, int b){ int c = a + b; System.out.println("The sum of A and B is "+ c);} public static void main(String[] args) { sum(20, 30); }}
सलाह
- जब एक ऐसी मेथड को कॉल करें, जो कुछ रिटर्न करे, आप उस मेथड के रिटर्न करने के आधार पर एक और दूसरी मेथड को कॉल कर सकते हैं। मान लेते हैं, हमारे पास में
getObject()
नाम की एक मेथड है, जो ऑब्जेक्ट रिटर्न करती है। क्लासObject
में, एक नॉन-स्टेटिक मेथड कॉलtoString
है, जोString
के फॉर्म मेंObject
रिटर्न करती है। इसलिए, अगर आपgetObject()
के द्वारा रिटर्न होने वालेObject
से एक लाइन मेंString
पाना चाहते हैं, तो आप बस "String str = getObject().toString();
" लिखेंगे।
चेतावनी
- एब्स्ट्रेक्ट क्लास और मेथड्स को लेकर सावधान रहें। अगर मेथड एब्स्ट्रेक्ट है, तो उसे किसी दूसरी क्लास के द्वारा इम्प्लीमेंट किए बिना इस्तेमाल नहीं किया जा सकेगा। ऐसा इसलिए, क्योंकि एब्स्ट्रेक्ट मेथड में पहले तो कोई कोड ही नहीं होता है। एब्स्ट्रेक्ट क्लास को एक तरह के फ्रेमवर्क की तरह यूज किया जाता है।