CodeGym /课程 /Java 语法 /调用方法,返回值

调用方法,返回值

Java 语法
第 2 级 , 课程 7
可用

“好的,我们来尝试另一种方式。我将向你展示如何调用方法,然后你尝试复习一下上一节课的内容,好吗?”

“咱们开始吧。”

“好的。我将介绍有关调用函数/方法以及它们返回的值(返回值)的内容。”

“命令(或语句)被分组为方法,因此它们可以像单个复杂命令一样作为单个块执行。要完成此操作,你需要编写方法(函数)名称,然后在括号内列出该方法的参数。”

示例
package com.codegym.lesson2;
public class MethodCall
{
    public static void main(String[] args)
    {
         print4("我喜欢移动它,移动它。");
    }

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

“在上面的示例中,我们编写了一个函数,该函数将在屏幕上将传递的字符串显示四次。然后,我们在第 6 行调用了 print4 函数。”

“当程序到达第 6 行时,它将跳到第 9 行,并将值‘我喜欢移动它,移动它’赋给变量 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("最小值为 "+ 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("最小值为 "+ m);
   }
}

“我觉得我能理解了!左列和右列中的代码实际上是相同的。只是左侧的代码具有独立的函数。”

“函数计算出某个值,然后使用 return 语句将该值传递给调用它的任何函数。至少,我看到的就是这样。”

“你说的很对!”

“但是这里的 void 类型是什么呢?”

“有些函数只是执行操作,但不计算和返回任何值,例如我们的 main() 方法。特殊的 return 类型 void 就是针对此类功能而创建的。”

“如果函数不返回任何内容,为什么不声明无内容呢?”

“还记得我们如何声明变量吗?类型和名称。对于函数,我们声明类型、名称和括号。函数名称后跟括号是你调用函数的方式。”

“因此,发明一个‘void 类型’比将函数分为两个类别(返回值的类别和不返回值的类别)更容易?”

“的确如此。你真是一个聪明的孩子。”

“我们如何返回 void 类型呢?”

“我们不需要返回。它的工作原理如下。当执行 return 语句时,Java 机器会计算单词‘return’右侧的表达式的值,将此值存储在内存的特殊部分,然后立即结束函数在调用函数的位置使用存储的值,作为函数调用的结果。你可以在我前面给出的示例中看到这一点。”

“你是指将 int m = min(a,b) 转换为 m = m2 的部分?”

“是的。函数完成后,一切都像将该函数的返回值写入其位置一样。在你的大脑中重复此短语,并查看上一示例中的代码。

“我认为这只是看起来容易。实际上很难。我只理解了其中的一部分内容。”

“没关系。第一次尝试时,你只能理解已经知道的内容。你不了解的事物越多,你对新事物的投入就会越深,你的收获也就越大。时间可以更好地检验这一点。”

“嗯,既然你这么说的话,让我们继续吧。”

评论 (17)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
tom 级别 19,Ottawa,中国
1 十二月 2023
我还是第一次知道,if-else单语句可以不使用括号括起来呢
Qin-1999 级别 22
21 十二月 2023
我也是,但这看上去不太好
Harry Levis 级别 10,Aruba,Aruba
31 七月 2023
应该是空格的问题。
Solitude 级别 7,Wuhan,China
28 七月 2022
希望可以加上ctrl+alt+L的功能
陳默默 级别 4,Japan
30 四月 2022
repeat code怎么检查有没有出错啊?
阳光灿烂的日子 级别 13,中国
23 四月 2022
一个空格也不能少!
³ 级别 15,Nanjing,China
28 十二月 2021
我觉得这些空格也很有必要哦! 最基础的代码规范(大家进厂写代码以后就知道这个练习的好处. 而且这些空格用tab键打出来就好了呀,这样很层次关系就很直观了.🥰
Dear 级别 5,China,China
21 十二月 2021
本来一分钟就能敲完的代码,我硬是敲了十几分钟!!!! 输入左半边括号,一回车就自动补全,一补全,我就得删了重新敲!!! 还有空格!!!!!
刘文 级别 9,Пекин
1 四月 2021
注意空格和括号!
洛空一 级别 3,Qingdao
28 二月 2021
虽然不友好,但是也是一种纠错 查bug的练习
null 级别 4
21 二月 2021
确定两个数字中的最小值。 我认为用三目运算符更好