7.2 函数的定义

和单纯的函数调用不同,我们现在是函数的设计者,是提供函数给别人或者自己使用的。设计者需要确定函数的名字,它需要什么参数,得到什么结果,以及它是怎么计算出来的。 下面我们来看一个简单的函数,数学函数f(x)=3x+4的java实现:
public static int func(int x){
    int y=3*x+4;
    return y;
}
这个函数就是f(x)=3*x+4的Java语言版本。下面逐一说明函数定义的各种要素:
函数名:函数的名称,命名规则和变量一致,在这个例子里,函数名是func。
函数计算结果的类型:func前面的int代表了这个函数计算出来的结果是int类型的。void表示没有返回值,例如main函数。
参数:输入的内容,自变量。和初中代数不同的是,自变量是有类型的,这里是int类型。参数可以有多个,以逗号分隔,每个参数都要写明类型在前面。注意,这里不要理解成定义一个变量,而是指这个参数是什么类型。
函数体:做出计算的代码。大括号内的代码。
返回值:也就是返回应变量的值,最终函数计算的结果,由return来表达这个语法,return后的值就是函数计算的值。
public static这两个关键字必须写上,否则无法被main函数调用,这两个关键字的意义,下一章节会有解释。
调用函数就是使用函数进行计算:
public static int func(int x){
    int y=3*x+4;
    return y;
}
public static void main(String[]args){
    int a=6;
    int b=func(a);
    System.out.println(b);
}
这是一个完整的函数定义,以及调用的代码。以下几点是需要注意的:
1.函数func和main函数是平行关系,它们都属于类Test,代码上体现就是都在Test的大括号范围内。
2.func和main函数的位置没有关系,只要定义正确,不管在main函数的前后,main函数都能调用到。
3.我们称为main函数调用func函数,func函数被调用。
4.函数名通常是小写开头,命名规则和变量名相同
调用func函数的代码:“int b=func(a);”。具体细节为:a的值是6,func(a)就相当于把6这个值传入到函数func中。然后这个值会赋给func的参数x,然后运算后y的值是22,最后return y把22这个值返回,也就是函数的计算结果。 这里func(a)将得到计算结果(根据 func函数定义来计算),然后把这个值赋给变量b。
func怎么得到计算的结果值呢?秘密就是return语句——第4行语句“return y;”。return后面的表达式,就是整个函数的值。如果里面的return语句写成了这样:“return 4;”那么这个函数不管是什么输入,中间计算的是什么(也就是代码1的第3行代码的计算),计算出来的结果都是4。