黑马程序员—java 函数

——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培训、期待与您交流! ——-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值