黑马程序员—java 函数

来源:互联网 发布:阿里云cdn网站加速 编辑:程序博客网 时间:2024/05/06 01:04

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

1.定义:指在类中的具有特定功能的一段小程序,也称为方法。

2.格式:修饰符 返回值类型 函数名{参数类型 形式参数1,参数类型 形式参数2,…) (注:参数是有顺序的。)
{
执行语句;
return 返回值;
}

3.名词解释:
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。

4.补充:
定义函数可以将功能代码进行封装,便于进行复用。
函数只有被调用才会被执行。

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

函数只能调用函数,不能在函数内定义函数。定义函数时,函数的结果应该返回给调用者,交由调用者处理。

5.如何定义一个函数呢?
1.既然函数是一个独立的功能,那么该功能的运算结果是什么,要明确好。
2.在明确该功能的过程中是否需要其他未知的内容参与运算?

需求1:
定义一个功能,实现两个整数变量的和.
分析:
1.明确功能的结果,是一个整数的和。
2.在实现该功能的过程中有未知内容进行参与运算。

其实这两个就是在明确函数的定义。
1.是在明确函数的返回值类型。
2.明确函数的参数列表(参与的类型和个数)

代码:class  Hanshu{    public static void main (String[] args)    {        boolean x =compare(0,0);            System.out.println(x);                         }    public static boolean compare(int a,int b)    {           /*if(a==b)            return true;        else            return false;        return (a==b)?true:false;*/        return a==b;        }}

运行结果:
运行结果

需求2:
定义一个功能,实现判断两个数/字符大小,获取较大的数/字符。
1、明确功能的结果是整数 int/char 类型。
2、在实现功能的过程中有未知内容进行参与运算。

代码:class  Hanshu{    public static void main (String[] args)    {        char x =getMax('a','A');            System.out.println(x);      //输出结果是字符a,因为a的ASCII值97大于A的ASCII值65。        }    public static char getMax(char a,char b)    {           return (a>b)?a:b;        }}

运行结果:
运行结果

需求3:
定义一个功能函数,打印九九乘法表。
思路:
1.确定结果,没有,因为直接打印,所以返回值类型是void。
2.有未知内容么?有,两个。

代码:class Hanshu{    public static void main(String[] args)    {         print99();           }    public static void print99(int num)   //如果要打印一部分口诀就会调用这个函数。    {        for (int x=1; x<=num; x++)        {            for (int y=1; y<=x; y++)            {                System.out.print(y+"*"+x+"="+y*x+"\t");                    }                System.out.println();        }    }    public static void print99()      // //如果要打印完整的乘法口诀的时候就调用这个函数。    {        for (int x=1; x<=9; x++)        {            for (int y=1; y<=x; y++)            {                System.out.print(y+"*"+x+"="+y*x+"\t");                    }                System.out.println();   //为了优化代码,可以直接调用上面代码。print99(9)。    }        print99(9);        }    }

运行结果:
运行结果

6.函数重载(Overload):在同一个类中允许存在一个以上的同名函数,只要他们的参数个数和参数类型不同即可。
特点:与返回值类型无关,只看参数列表。
优点:方便于阅读,优化了程序设计。

小练习:
void show(int a, char b, double c){}
判断以下函数和给定函数是否重载?
1.void show(int x, char y, double z){} 没有,因为参数类型和原函数一样,变量可以随意命名的。

2.int show(int a, double b, char c){} 重载,参数类型不同,参数是有顺序的,和返回值类型无关。

3.void show(int a, double c,char b){} 同上。

4.boolean show(int a, char b){} 重载,参数个数不同。

5.void show(double c){} 同上

6.double show(int x, char y, double z){} 没有,参数一致。

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

需求:
设计两个函数,实现两个整数,三个整数相加求和的功能。

代码:class Hanshu{    public static void main(String[] args)    {        int sum=add(2,4);            System.out.println("sum="+sum);        int sum1 =add(3,4,6);            System.out.println("sum1="+sum1);        }    public static int add(int x,int y)      //参数列表和下面个数不同,类型都是int相同,可以重名。    {        return x+y;        }    public static int add(int x, int y,int z)    {        return x+y+z;           //可以优化成add(x,y)+z  .        }}

运行结果:
运行结果

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

0 0
原创粉丝点击