“好吧,讓我們試試另一種方法。我會告訴你調用方法是如何工作的,然後你再嘗試一遍上節課,好嗎?”

“我們開始做吧。”

“太好了。我會告訴你調用函數/方法以及它們返回的值(返回值)。”

“命令或語句被分組到方法中,因此它們可以作為單個塊執行,就像單個複雜命令一樣。為此,您需要編寫方法(函數)名稱,然後在括號內列出方法的參數。”

例子
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行時,會跳轉到第9行,給'I like to move it, move it'變量s賦值。”

“然後將執行第 11-14 行。函數將完成,程序將在第 7 行繼續執行。”

“我懂了。”

“您不僅可以將參數(值)傳遞給函數——函數還可以返回其工作結果(返回值)。這是通過關鍵字 return 完成的。它看起來是這樣的:”

示例 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);
   }
}

“我覺得開始有道理了!左右兩列的代碼其實是一樣的,只是左邊的代碼多了一個獨立的功能。”

“該函數計算某個值並使用 return 語句將該值傳遞給調用它的任何對象。至少,我是這麼看的。”

“你是對的!”

“可是這個虛空型是什麼?”

“有些函數只是做一些事情而不計算或返回任何值,比如我們的main()方法。一個特殊的返回類型——void——是為這些函數創建的。”

“如果一個函數不返回任何東西,為什麼不聲明什麼都不做呢?”

“還記得我們如何聲明任何變量嗎?類型和名稱。對於函數,我們聲明類型、名稱和括號。函數名稱後跟括號就是調用函數的方式。”

“所以,發明一個‘空類型’比將函數分為兩類——返回值和不返回值的函數更容易?”

“完全正確!你真的很聰明,我的孩子。”

“我們如何返回 void 類型?”

“我們沒有。它是這樣工作的。當執行return語句時,Java機器計算'return'一詞右邊的表達式的值,將這個值存儲在內存的一個特殊部分,並立即結束函數存儲的值在調用函數的地方使用,作為調用函數的結果。您可以在我之前給出的示例中看到它。”

“你的意思是將 int m = min(a, b) 轉換為 m = m2 的部分?”

“是的。函數結束後,一切正常,就好像函數的返回值寫在了它的位置上。在腦海中重複這句話,看看上一個例子中的代碼。

“我覺得這只是看似簡單,其實很難,我只理解了一部分。”

“沒關係。第一次嘗試,你只能理解你已經知道的東西。你不明白的東西越多,你就會對新事物投入越深,你的結果就會越好。隨著時間的推移,它會變得更加清晰”

“好吧,既然你這麼說,那我們繼續吧。”