Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।


"तुम फिर से, अमीगो। खैर, हैलो।"

"ऐसा लगता है कि तुम मुझे देखकर बहुत खुश नहीं हो, डिएगो?"

"मुझे ऐसा आभास हुआ है कि आपको लगता है कि आप जावा में तरीकों के बारे में जानने के लिए पहले से ही सब कुछ सीख चुके हैं।"

"ओह, मैं नहीं..."

"मुझे ऐसा नहीं लगता! आप इसका आधा भी नहीं जानते।"

"निश्चित रूप से, मैं असहमत नहीं हूं ...

"ठीक है, बहुत बात हुई। यह शुरू करने का समय है। और हम कुछ सरल से शुरू करेंगे। उदाहरण के लिए, तथ्य यह है कि जावा में रिटर्न स्टेटमेंट है । यह आपको उस विधि को तुरंत समाप्त करने की अनुमति देता है जिसमें इसे कहा जाता है। यहां कथन है:

return;

"यह सरल है: अर्धविराम के बाद अकेला शब्द return। जैसे ही प्रोग्राम इस कथन को निष्पादित करता है, वर्तमान विधि बाहर निकल जाती है और कॉलिंग विधि जारी रहती है।

"यदि विधि returnमें कहा जाता है main, तो mainविधि तुरंत समाप्त हो जाएगी, और इसके साथ पूरा कार्यक्रम।

उदाहरण:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {
     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}
विधि fill उत्तीर्ण सरणी का हिस्सा भरती है value

भरे जाने वाले सरणी का हिस्सा सूचकांकों द्वारा परिभाषित किया गया है from और to

यदि   सरणी की लंबाई से from कम 0या अधिक है, तो विधि तुरंत समाप्त हो जाती है।to

"उपरोक्त कार्यक्रम में एक fillविधि है जो इसे पास की गई सरणी को भरती है value। यह संपूर्ण सरणी को नहीं भरती है, केवल सूचकांकों द्वारा निर्दिष्ट भाग fromऔर to

"विधि की शुरुआत में fill, पास किए गए मानों को यह सुनिश्चित करने के लिए चेक किया जाता है कि वे मान्य हैं। यदि from0 से कम है, या यदि toसरणी की लंबाई से अधिक है, तो fillविधि तुरंत समाप्त हो जाती है (एक returnकथन निष्पादित करता है)।"

"समझ गया। क्या यह सब कथन यही करता है?"

"वास्तव में, returnकथन आपके विचार से अधिक उपयोगी है। यह इतना उपयोगी है कि यह जावा में लगभग हर विधि में पाया जाता है। और अब मैं आपको यह समझने के लिए प्रेरित करूँगा कि ऐसा क्यों है।

परिणाम के साथ तरीके,void

"आपको शायद याद होगा कि बयान हैं, और भाव हैं । उनके बीच क्या अंतर है?"

"अगर मैं गलत नहीं हूँ, तो एक अभिव्यक्ति, एक बयान के विपरीत, एक अर्थ है जिसका उपयोग कहीं किया जा सकता है।"

"सही। और, जावा में, विधियों का भी एक मूल्य हो सकता है । और यह बहुत अच्छी खबर है: विधियाँ न केवल इनपुट मापदंडों के आधार पर कुछ करने में सक्षम हैं, बल्कि उदाहरण के लिए, कुछ का मूल्यांकन करने और परिणाम वापस करने के लिए भी गणना

"वैसे, आप पहले ही ऐसे तरीकों का सामना कर चुके हैं:

double delta = Math.abs(d1 - d2);
विधि abs()एक डबल लौटाती है
Scanner console = new Scanner(System.in);
int x = console.nextInt();

विधि nextInt()एक देता हैint
String str = "Hello";
String s2 = str.toUpperCase();
विधि toUpperCase()एक देता हैString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

विधि copyOf()एक देता हैint[]

"प्रत्येक विधि केवल एक पूर्वनिर्धारित प्रकार का एक मान लौटा सकती है । वापसी प्रकार निर्धारित किया जाता है जब विधि घोषित की जाती है:

public static Type name(parameters)
{
  method body
}

nameविधि का नाम कहां है, parametersविधि पैरामीटर की सूची है, और typeपरिणाम का प्रकार है जो विधि देता है।

उन तरीकों के लिए जो कुछ भी नहीं लौटाते हैं, एक विशेष प्लेसहोल्डर प्रकार है void:।

"दूसरे शब्दों में, अगर मैं अपनी विधि लिखता हूं और कुछ भी वापस नहीं करना चाहता, तो मैं विधि के प्रकार की घोषणा करता हूं void, और वह है?"

"हाँ। और, मुझे यह भी कहना होगा कि जावा में इस तरह के बहुत सारे तरीके हैं।

एक परिणाम लौटा रहा है

"मुझे पता चला कि एक विधि की घोषणा कैसे की जाती है जो एक गणना/कार्य का परिणाम लौटाती है। मैं विधि से ही परिणाम कैसे वापस करूँ?"

"यह एक वैध प्रश्न है। returnकथन हमें यहाँ एक बार फिर से मदद करता है। एक विधि से परिणाम पास करना इस तरह दिखता है:

return value;

" returnकथन तुरंत विधि को समाप्त कर देगा। और जब यह बाहर निकलता है तो विधि को कॉलिंग विधि पर वापस आना चाहिए। विधि घोषणा में निर्दिष्ट valueप्रकार से valueमेल खाना चाहिए । आपने जो सीखा है उसे मजबूत करने के लिए यहां कुछ उदाहरण दिए गए हैं:Type

उदाहरण 1. विधि न्यूनतम दो संख्याओं की गणना करती है:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
विधि न्यूनतम दो संख्याएँ लौटाती है।

यदि a < b
वापसी a
अन्यथा
वापसb

उदाहरण 2. विधि nबार-बार पास की गई स्ट्रिंग को डुप्लिकेट करती है:

String multiple(String str, int times)
{
   String result = "";

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
विधि दो पैरामीटर लेती है - एक स्ट्रिंग और कितनी बार स्ट्रिंग को दोहराया जाना चाहिए।
भविष्य के परिणाम के लिए एक खाली स्ट्रिंग बनाई जाती है।

पुनरावृत्तियों वाले लूप में times, एक स्थान और स्ट्रिंग strको स्ट्रिंग में जोड़ा जाता है result। विधि के परिणाम के रूप में
स्ट्रिंग वापस कर दी जाती है।result

उदाहरण 3: विधि टर्नरी ऑपरेटर का उपयोग करके अधिकतम दो संख्याओं की गणना करती है:

int max(int a, int b)
{
   return (a > b ? a : b);
}
विधि अधिकतम दो संख्याएँ लौटाती है।

वापसी (यदि a > b, तो a, अन्यथा b)

"बहुत बढ़िया। तरीके मेरी नई महाशक्ति हैं!"

"केवल अगर आप हाथों के कार्यों में पर्याप्त अभ्यास करते हैं। बार-बार।"