黑马程序员——函数

来源:互联网 发布:关于网络的作文500字 编辑:程序博客网 时间:2024/05/05 21:48

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一,函数的定义

什么是函数?

1,  函数就是定义在类中具有特定功能的小程序

2,  函数也称为方法

函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)

{

         执行语句;

         return 返回值;

}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:用于结束函数。

返回值:该函数运算后的结果,该结果会返回给调用者。


例如:定义一个功能完成整数的*3+5的运算。

class FunctionDemo{public static void main(String[] args) {int x = getResult(5);System.out.println(x);}public static int getResult(int num){    return num*3+5;}}


函数的特点:

    定义函数可以将功能代码进行封装,便于对该功能进行复用。

    函数只有被调用才会被执行。

    函数的出现提高了代码的复用性。

    对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

注意:

        a) 函数中只能调用函数,不可以在函数内部定义函数。

        b) 定义函数时,函数的结果应该返回给调用者,交由调用者处理。


 示例:执行下列代码:

错误提示如下:


为什么呢?

因为函数式int类型的,说明要返回一个int类型的值,可是函数是直接打印出来的,没有具体返回值,没有具体返回值,

就不能有具体返回值类型,所以会出错。

如何解决呢?

当函数运算后,没有具体返回值时,这时返回值类型用一个特殊的关键字来标识,该关键字就是void,void表示函数没

有具体返回值,当函数返回值是void时,函数中的return语句可以省略不写。

如何定义一个函数?

1,既然函数是一个独立的功能,明确要定义的功能最后的结果是什么。

      因为这是明确函数的返回值类型。

2,明确在定义该功能的过程中,是否需要未知内容参与运算。

      因为这是明确函数的参数列表。

练习:需求定义一个功能完成3+4的运算,并将结果返回给调用者

           1,明确功能的结果,是一个整数的和。

           2,在实现功能过程中是否有未知参数参与运算,没有。

           其实这两个功能就是在明确函数的定义

           1,明确函数的返回值类型。

           2,明确函数的参数列表(参数的类型和参数的个数)

class FunctionDemo2{public static void main(String[] args) {int num = getSum();System.out.println("sum"+sum);}public static int getSum(){     return 3+4;}}

以上函数的功能,结果是固定的,毫无扩展性而言为了方便用户需求,由用户指定加数和被加数

这样功能才有意义。

思路:

1,功能结果是一个和,返回值类型是int。

2,有未知内容参与运算,有两个,这两个未知内容的类型都是int。

class FunctionDemo2{public static void main(String[] args) {int num = getSum(4,6);System.out.println("sum"+sum);}public static int getSum(int x,int y){     return x+y;}}


细节注意:

下列代码会出错:

class FunctionDemo2{public static void main(String[] args) {System.out.println(get(4,5));}public static int get(int a,int b){ System.out.println(a+b); return ;}}



因为:如果函数的返回值类型是void的类型是不能在主函数的输出语句里

            输出get(4,5),可以在主函数里直接调用,这个函数get运行完了后没有具体的值,主函数中

            的打印语句不知道要打印什么。而下面的却可以, 因为getSum运算完是有具体的结果。

class FunctionDemo2{public static void main(String[] args) {System.out.println(getSum(4,5));}public static int getSum(int x,int y){ return x+y;}}


注意:下面功能定义思想有问题,因为只为完成加法运算,至于是否要对和进行打印操作

            那是调用者的事,不要再该功能中完成。


练习:打印一个99乘法表功能的函数。

public static void print99(){    for(int x=1;x<=9;x++){    for (iny y=1;y<=x ;y++ )    {System.out.print(y+"*"+x+"="+y*x+"\t");    }System.out.println();}}


结果:



二,函数的重载

概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数列表的个数或者参数类型不同即可。

特点:与返回值类型无关,只看参数列表。

好处:方便于阅读,优化了程序设计。

示例:

             //返回两个整数的和

             int add(int x,int y){return x+y;}

             //返回三个整数的和

             int add(int x,int y,int z){returnx+y+z;}

             //返回两个小数的和

             double add(double x,double y){return x+y;}

什么时候用到重载?

当定义的功能相同,但参与运算的未知内容不同。那么,这时就定义一个函数名称以表示起功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

注意:重载和返回值类型没有关系。


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------




0 0