"ठीक आहे, चला दुसरी पद्धत वापरून पाहू. कॉलिंग पद्धती कशा कार्य करतात ते मी तुम्हाला दाखवतो आणि मग तुम्ही पुन्हा मागील धड्यात जाण्याचा प्रयत्न करा, ठीक आहे?"

"चला करूया."

"छान. मी तुम्हाला कॉलिंग फंक्शन्स/पद्धती आणि ते परत करणारी मूल्ये (रिटर्न व्हॅल्यू) बद्दल सांगेन."

"कमांड, किंवा स्टेटमेंट्स, पद्धतींमध्ये गटबद्ध केले जातात जेणेकरून ते एकल ब्लॉक म्हणून कार्यान्वित केले जाऊ शकतात, एकल कॉम्प्लेक्स कमांडप्रमाणे. हे करण्यासाठी, तुम्हाला पद्धत (फंक्शन) नाव लिहावे लागेल आणि नंतर कंसात मेथडचे वितर्क सूचीबद्ध करावे लागतील."

उदाहरण
package com.codegym.lesson2;
public class MethodCall
{
    public static void main(String[] args)
    {
         print4("I like to move it, move it.");
    }

    public static void print4(String s)
    {
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
    }
}

"वरील उदाहरणात, आम्ही एक फंक्शन लिहिले जे स्क्रीनवर पास केलेली स्ट्रिंग चार वेळा प्रदर्शित करेल. नंतर आम्ही फंक्शनला print4ओळ 6 मध्ये कॉल केला."

"जेव्हा प्रोग्राम 6 रेषेपर्यंत पोहोचतो, ते 'I like to move it, move it'व्हेरिएबल s ला मूल्य नियुक्त करून, 9 ओळीवर जाईल."

"मग 11-14 ओळी कार्यान्वित केल्या जातील. फंक्शन समाप्त होईल आणि प्रोग्राम 7 व्या ओळीवर पुन्हा सुरू होईल."

"मी बघतो."

"तुम्ही फंक्शनला केवळ वितर्क (मूल्ये) पास करू शकत नाही—एखादे फंक्शन त्याच्या कामाचे परिणाम (रिटर्न व्हॅल्यू) देऊ शकते. हे कीवर्ड रिटर्नसह केले जाते. ते असे दिसते:"

उदाहरण 1.
किमान दोन संख्या निश्चित करा.
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int m = min(a, b);
      System.out.println("The minimum is "+ m);
   }

   public static int min(int c, int d)
   {
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      return m2;
   }
}
ते कसे कार्य करते ते येथे आहे:
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int c = a, d = b;
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      int m = m2;
      System.out.println("The minimum is "+ m);
   }
}

"मला वाटतं की याचा अर्थ होऊ लागला आहे! डाव्या आणि उजव्या स्तंभातील कोड प्रत्यक्षात सारखाच आहे. फक्त डावीकडील कोडमध्ये एक स्वतंत्र कार्य आहे."

"फंक्शन एका विशिष्ट मूल्याची गणना करते आणि रिटर्न स्टेटमेंट वापरून ते व्हॅल्यू ज्याला म्हणतात त्यास पास करते. किमान, मी ते कसे पाहतो."

"आणि तू बरोबर आहेस!"

"पण हा काय शून्य प्रकार आहे?"

"काही फंक्शन्स फक्त आमच्या main() पद्धतीप्रमाणे, कोणत्याही मूल्याची गणना न करता किंवा रिटर्न न करता काहीतरी करतात . अशा फंक्शन्ससाठी एक विशेष रिटर्न टाईप- void - तयार केला गेला होता."

"एखादे फंक्शन काहीही परत करत नसेल तर काहीही का घोषित करू नये?"

"लक्षात ठेवा आम्ही कोणतेही व्हेरिएबल कसे घोषित करतो? प्रकार आणि नाव. फंक्शन्ससाठी, आम्ही एक प्रकार, नाव आणि कंस घोषित करतो. कंसानंतर फंक्शनचे नाव म्हणजे तुम्ही फंक्शन कसे कॉल करता."

"म्हणून, फंक्शन्सची दोन श्रेणींमध्ये विभागणी करण्यापेक्षा 'व्हॉइड प्रकार' शोधणे सोपे होते - जे मूल्ये परत करतात आणि जे मिळत नाहीत?"

"अगदी! तू खरच हुशार आहेस माझ्या मुला."

"आम्ही शून्य प्रकार कसा परत करू?"

"आम्ही करत नाही. हे असे कार्य करते. रिटर्न स्टेटमेंट कार्यान्वित करताना, जावा मशीन 'रिटर्न' शब्दाच्या उजवीकडे अभिव्यक्तीचे मूल्य मोजते, हे मूल्य मेमरीच्या एका विशिष्ट भागात साठवते आणि लगेच संपते . फंक्शन . फंक्शन कॉल केल्यामुळे फंक्शन कॉल केल्यावर स्टोअर केलेले मूल्य वापरले जाते. मी आधी दिलेल्या उदाहरणात तुम्ही ते पाहू शकता."

"तुला म्हणायचे आहे की तो भाग जिथे int m = min(a, b) चे m = m2 मध्ये रूपांतर होते?"

"होय. फंक्शन पूर्ण झाल्यानंतर, फंक्शनचे रिटर्न व्हॅल्यू त्याच्या जागी लिहिलेल्याप्रमाणे सर्वकाही कार्य करते. तुमच्या मनात हा वाक्यांश पुन्हा करा आणि शेवटच्या उदाहरणातील कोड पहा. "

"मला वाटतं हे फक्त सोपं वाटतं. खरं तर अवघड आहे. मला त्यातील फक्त काही भाग समजले आहेत."

"ते ठीक आहे. पहिल्याच प्रयत्नात, तुम्हाला आधीच माहीत असलेल्या गोष्टीच समजू शकतात. तुम्हाला जितक्या जास्त गोष्टी समजत नाहीत, तितक्या खोलात तुम्ही नवीन गोष्टीत बुडून जात आहात आणि तुमचे परिणाम तितके चांगले होतील. हे वेळोवेळी स्पष्ट होत जाईल. ."

"बरं, तू म्हणतेस तर. चल चालू ठेवू."