zoukankan      html  css  js  c++  java
  • JavaSE基础入门_005_函数

    函数

    函数的定义

    • 概念: 实现特定功能的一段代码, 可反复使用.

    • 定义语法:

    • public static void 函数名称() { //遵循标识符命名规范
         //函数主体[功能代码]
      }
    • 经验: 将需要在多个位置重复使用的一组代码, 定义在函数内.

     

    定义的位置

    • 函数定义在类的内部, 与main函数并列.

     

    函数的调用

    在需要执行函数代码的位置, 通过函数名称进行调用.

    public static void printSign()
    {
    for(int i = 1; i <= 10; i++)
    {
    System.out.print("-");
    }
    System.out.println();
    }

    System.out.println("低头思故乡");
    printSign();//调用自定义函数
    • 注意: 调用函数时, 会优先执行函数内部代码, 结束后, 返回到函数调用处, 继续向下执行.

     

    函数的参数

    • 多数情况下, 函数与调用者之间需要数据的交互; 调用者必须提供必要的数据, 才能使函数完成相应的功能.

    • 调用函数时, 所传入的数据被称为"参数"

     

    形参与实参

    • 定义语法:

    • public static void 函数名称( 形式参数 ) // 形参等于局部变量的声明
      {
         // 函数主体
      }
    • 调用语法:

    • 函数名称( 实际参数 ); // 实参等于局部变量的赋值

    单个参数

    //定义函数
    public static void 函数名称( int a)
    {
       // 函数主体
    }
    函数名称(10);//调用函数

     

    多个参数

    //定义函数
    public static void 函数名称( int a, char b)
    {
       // 函数主体
    }
    函数名称(10, '+');//调用函数
    • 多参赋值的时候, 除了要注意数据类型, 数据顺序, 数据个数都要一一匹配

     

    如何定义参数

    • 经验: 根据具体的业务需求, 来定义函数的参数.

     

    返回值与返回值的类型

    • 函数调用时, 一些情况下无需返回结果; 另一些情况下则必须返回结果.

    • 定义语法:

    • public static 返回值类型 函数名称( 形式参数列表 )
      {
         // 函数主体
         return value; // 返回值
      }
    • 规定返回值的具体类型: 基本 , 布尔, 引用

    • 根据需求返回一个结果 ( 值 )

    • 调用语法:

    • 变量 = 函数名称(); 

    return关键字

    • 一个函数只能有一个返回值.

    • 当有返回值的函数存在分支结构时,必须保证每一条分支都具有正确的返回值.

    • return的两种用法:

      1. 应用在具有返回值类型的函数中:

        • return value : // 表示结束当前函数, 并伴有返回值, 返回到函数调用处

      2. 应用在没有返回值类型(void) 的函数中:

        • return; //表示结束当前函数, 直接返回到函数调用处.

    小结

    • 注意: 一个类中可以定义多个函数, 函数之间属于并列关系, 不可嵌套

    • 经验: 一个函数只做一件事. ( 单一职能原则 )

    • 好处:

      • 减少代码冗余

      • 提高复用性

      • 提高可读性

      • 提高可维护性

      • 方便分工合作

    递归

    多级调用

    函数内部调用其他函数

     

    无穷递归

    • 递归: 函数内部自己调用自己.

    • 无穷递归: 函数内部调用自身, 没有结束.

    • 当函数自己调用自己时, 如果没有正确的出口条件, 则产生无穷递归.

     

    递归

    • 实际开发中,递归可以解决具有既定规律的特定问题

    • 何时使用递归?

      • 当需要解决的问题可以拆分成若干个小问题, 大小问题的解决方法相同

      • 有固定规律, 函数中自己调用自己

    • 如何正确使用递归?

      • 设置有效的出口条件, 避免无穷递归.

    • 递进:

      • 每一次推进,计算都比上一次变得简单, 直到简单到无需继续推进, 就能获得结果. 也叫到达出口

    • 回归:

      • 基于出口的结果, 逐层向上回归, 依次计算每一层的结果, 直至回归到最顶层.

    • 递归与循环可以相互解决.

     

     

    总结

    • 函数的概念:

      • 实现特点功能的一段代码, 可反复使用

    • 函数的定义:

      • public static void 函数名() { 函数的主体 }

    • 函数的组成:

      • 形参列表, 实参列表, 返回值类型, 返回值, 函数名, 函数主体

    • 函数的调用:

      • 函数名(实参...)

    • 函数的好处:

      • 减少冗余, 提高复用性, 可读性, 可维护性, 方便分工合作

    • 递归:

      • 将大问题拆分成若干小问题, 大小问题的解决方法相同, 有固定规律, 函数中自己调用自己

  • 相关阅读:
    程序运行时被用户删除了工作目录后崩溃
    const引用与非const引用
    NDKr10的各种BUG
    《区块链100问》第64集:区块链分叉是什么?
    《区块链100问》第65集:比特币生孩子了
    《区块链100问》第66集:软分叉和硬分叉是什么?
    《区块链100问》第67集:重放攻击是什么?
    《区块链100问》第68集:硬分叉之以太经典
    《区块链100问》第69集:区块链项目的分类和应用
    《区块链100问》第70集:区块链项目之币类
  • 原文地址:https://www.cnblogs.com/77-is-here/p/12869571.html
Copyright © 2011-2022 走看看