Java基础—函数(方法)

概念

        函数是一点具有特定功能的代码,特点为可以在不同的位置多次调用执行。可以解决代码冗余问题。  

语法

访问修饰符 返回值类型 函数名(形参列表){
    //操作语句
}

example:

public static void 函数名(){
    //操作语句
}

位置

        函数一般都写在类的内部,其他函数的外部,与主函数同级。

调用

        自定义函数想要执行必须经过调用。

        调用方法:在其他函数中通过函数名(实参列表);函数名();进行调用,需要在哪里使用就在哪里调用,位置不做限制。

//案例:

public class Test {
    public static void main(String[] args) {
        //输出一首打油诗,要求每行之后输出15个-
        System.out.println("太阳当空照");
        //调用函数输出-
        printLine();
        System.out.println("花儿对我笑");
        printLine();

        System.out.println("小鸟说早早早");
        printLine();

        System.out.println("你为什么背上java包");
        printLine();

    }
    //书写函数,输出指定数量的-
    public static void printLine(){
        //利用循环输出-
        for (int i = 1; i <= 15; i++) {
            System.out.print("-");
        }
        System.out.println();
    }
}

参数

        表示函数中的不确定因素,提高函数的泛用性。

形参

        形式上的参数。没有具体值,只有声明部分,写在函数声明处的小括号内

实参

        实际上的参数。有具体值(或是有具体值结果的表达式),写在函数调用处的小括号内。

一个参数

        语法:

形参:
public static void 函数名(数据类型 参数名){
    //操作语句
}
实参:
    函数名(值);
注意:当存在形参时,必须使用实参给形参赋值

多个参数

        语法:

public static void 函数名(数据类型 参数名1,数据类型 参数名2,..){
    //操作语句
}
调用:函数名(值1,值2,..)

        使用规范:实参列表必须和形参列表保持一致。(参数列表:数据类型、个数、顺序) 

                          形参不可同时声明,必须分开独立声明。

public static void method(int a,int b){}//正确
public static void method(int a,b){}//错误

         案例:

public class Test {
    public static void main(String[] args) {
        //输出一首打油诗,要求每行之后输出-
        System.out.println("太阳当空照");
        //调用函数输出- 10
        printLine(10,"-");
        System.out.println("花儿对我笑");
        //15 *
        printLine(15,"*");
        System.out.println("小鸟说早早早");
        //20 +
        printLine(20,"+");
        System.out.println("你为什么背上java包");
        //25 #
        printLine(25,"#");
    }

    /**
     * 书写函数,输出指定数量的内容
     * @param n -的数量
     * @param str 输出的内容
     */
    public static void printLine(int n,String str){
        //利用循环输出-
        for (int i = 1; i <= n; i++) {
            System.out.print(str);
        }
        System.out.println();
    }
}

返回值

        是一个具体值,特点为可以向上(调用者)返回。

public static 返回值类型 函数名(形参列表){
    //操作语句
    return 值;
}

example:

public static void main(String[] args) {
        //定义变量接收返回值
        int sum=getSum(100);
        //判断结果是否为偶数并输出
        System.out.println(sum % 2 == 0 ? "偶数" : "不是偶数");

    }
    //定义一个函数,传入整型参数n,要求计算1-n的和,并调用测试,并在调用完成后判断和是否为偶数
    public static int getSum(int n){
        int sum=0;//累加器
        for (int i = 1; i <= n; i++) {
            sum+=i;
        }
        //将和向上返回
        return sum;
    }

        使用特点及规范:

        1. void:没有返回值,无需向上返回数据。

        2. 如果函数声明有返回值,则函数内部必须通过return语句将值向上返回。

        3. 当调用一个拥有返回值的函数时,调用者必须对返回的数据进行后续处理,否则返回值无意义。 

        4. 同一直属作用范围内,return语句下方不可存在其他有效语句,无法执行。(return代表程序执行到此处就结束了,下方语句不会继续执行)

        5. 如果函数中存在分支,则必须保证每种情况下都有可被执行的return语句。

//定义一个函数,传入整型参数n,判断n的奇偶性,如果为偶数则返回true,否则返回false
    public static boolean isOu(int n){
        if (n % 2 == 0) {
            return true;
        }
        return false;
    }

        6.当分支情况较多时,为了方便记忆,建议使用 “三部曲”。

                1. 在函数最上方定义用来返回的变量,并赋初始值。

                2. 在函数操作语句中根据不同的情况为变量重新赋值。

                3. 在函数的最下方return该变量。

函数高级

函数的嵌套调用

        1. 函数嵌套调用时,调用顺序与执行结束的顺序相反

        2. 当调用的函数执行结束,调用者才有可能执行结束

        3. 只要逻辑完整,嵌套层数不做要求

JVM的内存结构

        JVM内存主要有栈和堆组成。栈的特点是,先进后出(FILO),永远操作栈顶元素。每当函数调用时,都会生成一条对应的栈帧,栈帧的执行特点决定了函数嵌套调用的执行特点。

递归

        函数之间循环调用。

        使用特点:当进行递归调用时,会持续生成栈帧,如果没有跳出条件,则最终栈帧会将内存撑满,程序会强制停止。return可以强制停止程序剩余内容的执行,可以用于递归,在递归过程中满足某个条件时通过return;结束递归。

        递归可以实现的操作,循环一定也可以。

重点掌握

  1. 函数的完整语法

  2. 形参和实参的区别

  3. 什么是参数列表

  4. 返回值的使用

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值