Java基础——函数(也叫方法)

一、概念

是一段具有特定功能的代码, 特点为可以多次执行.通常情况下一个函数对应一个功能

二、语法

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

三、位置

类以内,其他函数以外,与主函数平级

四、执行流程

在这里插入图片描述

五、参数

表示函数执行中不确定的内容,特点为值可变

(1)形参

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

(2)实参

实际上的参数. 特点为是一个具体值或拥有具体值结果的表达式,写在函数调用处的小括号内

六、调用

自定义函数必须经过调用才有可能执行

函数名(实参列表)
函数名()

(1)位置

只要在函数内,想在哪执行,就在哪调用

(2)一个参数的调用

public static void 函数名(数据类型 参数名){
    
}
调用:函数名(|拥有结果的表达式)
执行流程

在这里插入图片描述

使用
  1. 有参数时,必须通过实参给形参赋值

(3)多个参数的调用

public static void 函数名(数据类型 参数名1,数据类型 参数名2,..){
    
}
调用:函数名(1,2,..)
使用

实参列表与形参列表必须保持一致

  • 参数列表: 个数 顺序 数据类型
public class Test1 {
    public static void main(String[] args) {
        //需求:输出一首打油诗,要求每行下方输出做分割
        System.out.println("太阳当空照");
        printLine(15,"-");//15 -
        System.out.println("花儿对我笑");
        printLine(20,"*");//20 *
        System.out.println("小鸟说早早早");
        printLine(25,"^");//25 ^
        System.out.println("你为什么背上java包");
    }

    /**
     * 输出指定数量的分隔符  printLine(int,String)
     * @param num 数量
     * @param str 分隔符内容
     */
    public static void printLine(int num,String str){//int num=15
        for (int i = 1; i <= num; i++) {
            System.out.print(str);
        }
        System.out.println();
    }

}

七、返回值

表示函数的执行结果

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

return语句

  1. 作用: 向上返回 返回值

    • 上:调用者
  2. void表示无返回值

  3. 如果声明了返回值,则在函数内部必须通过return关键字将值向上返回

  4. 调用有返回值的函数时,必须对返回值做出处理

    • 先定义变量接收返回值,其后再操作变量
         数据类型 变量名=函数名(实参列表);
    
    • 变量类型由函数声明处的返回值类型决定

    • 直接操作函数调用结果

       public static void main(String[] args) {
               //接收调用结果
               int sum=add(1, 2);
               System.out.println(sum % 2 == 0 ? "偶数" : "不是偶数");
               System.out.println(sum *10);
               //直接操作调用结果
               System.out.println(add(2, 4) % 2 == 0 ? "偶数" : "不是偶数");
               System.out.println(add(2, 4) *10);
           }
       
           //定义一个函数,传入整型参数a和b,计算参数之和. 要求在主函数中调用测试并判断和是否为偶数
           public static int add(int a,int b){
               //System.out.println(a+b);
               return a+b;
           }
    
  5. 必须保证每种分支情况都有可被执行的return语句

  6. 函数内存在分支时建议的书写套路:

    1. 在函数最上方定义用来返回的变量并赋初始值
    2. 在操作过程中根据情况更改变量的值
    3. 在函数最下方return该变量
  7. 执行流程:

    在这里插入图片描述

  8. 同一作用范围内,return语句的下方不能存在其他有效语句

    • 无法执行
  9. 扩展: 可以直接使用return;强制截止当前程序的执行

八、函数高级

(1)函数的嵌套调用

在这里插入图片描述

  1. 嵌套调用时调用顺序与向上返回顺序相反
  2. 最先被调用的最后执行结束,最后调用的最先执行结束

(2)JVM内存结构

在这里插入图片描述

  1. 栈的特点:永远操作栈顶元素. 存从栈顶存,取从栈顶取
  2. 每调用一次函数都会生成一条对应的栈帧, 函数的执行流程与栈的执行特点一致
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值