作为 Codegym 大学课程一部分的导师授课片段。报名参加完整课程。


“又是你,阿米戈。嗯,你好。”

“迪亚哥,你好像不太高兴见到我?”

“我的印象是,您认为您已经掌握了有关 Java 方法的所有知识。”

“哦,我不……”

“我不这么认为!你连一半都不知道。”

“当然,我不反对...

“好吧,废话不多说了。是时候开始了。我们将从一些简单的事情开始。例如,Java 有一个return语句。它允许您立即终止调用它的方法。下面是语句:

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 小于0to  大于数组的长度,则该方法立即终止。

“上面的程序有一个fill方法,用 填充传递给它的数组value。它不会填充整个数组,只填充索引from和指定的部分to

“在方法的开始fill,检查传递的值以确保它们有效。如果from小于 0,或者如果to大于数组的长度,则该fill方法立即终止(执行return语句)。”

“明白了。这就是这句话的全部作用吗?”

“实际上,该return语句比你想象的更有用。它非常有用,几乎在 Java 中的每个方法中都可以找到它。现在我将带领你了解为什么会这样。

有结果的方法,void

“你可能还记得有语句,有表达式。它们之间有什么区别?”

“如果我没记错的话,表达式与陈述不同,它具有可以在某处使用的含义。”

“正确。而且,在 Java 中,方法也可以有一个。这是一个非常好的消息:方法不仅能够根据输入参数做一些事情,而且,例如,评估一些事情并返回结果计算

“对了,你已经遇到过这样的方法:

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,仅此而已?”

“是的。而且,我还必须说 Java 有很多这样的方法。

返回结果

“我想出了如何声明一个返回计算/工作结果的方法。我如何从方法本身返回结果?”

“这是一个有效的问题。该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添加到 string result
该字符串result作为该方法的结果返回。

示例 3:该方法使用三元运算符计算两个数字的最大值:

int max(int a, int b)
{
   return (a > b ? a : b);
}
该方法返回两个数字中的最大值。

返回(如果a > b,则a,否则b

“太棒了。方法是我的新超能力!”

“只有你在动手任务中练习得足够多。一遍又一遍。”