第五章 函数


一、函数


1.理解:执行一段特定功能的代码,并且可以通过
名字进行反复的调用

2.函数的使用流程:

(1) 函数的定义:确定函数的功能和函数名
a.函数的声明:确定函数的名字

b.函数的实现:确定函数的功能

(2)函数的调用:通过名字进行反复的使用

 

3.函数的定义位置:定义类以内,其他函数以外的
位置(与main函数并列)



二、函数的基本使用


1.函数的定义:

public static void 函数名(){
// 函数的实现

}

函数的定义:函数的声明和函数的实现

(1)函数的声明:
public static void 函数名()
注意:函数名,望文生义,采用驼峰命名法形式命名
(2)函数的实现: {}

 

2.函数的调用:


(1) 通过函数名直接使用函数对应的功能

(2) 语法:函数名();

 

三、参数的使用

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

2.形式参数:


(1)形式参数:简称形参,函数和调用者之间的一种约定,

约定了调用者需要给函数传递什么数据
(2)定义:
public static void函数名(数据类型变量名,数据类型变量名,数据类型 变量名3){
}
(3)使用:形参相当于函数内部的局部变量

(4) 一个函数可以定义多个形参,称为形参列表(0~n个)

 

 

3.实际参数:

(1) 实际参数:简称实参,函数调用时,传递的数据
(2)实参的作用:给形参赋值
(3)注意:实参的个数、顺序、数据类型必须和形参一致

定义一个函数selectMax,接收两个整数m,n,打印两个数据中的较大值;在main函数中调用此函数

 

四、函数的返回值


1.理解:函数和调用者之间的一种数据交互,调用
者通过函数获取一些数据结果(函数给调用者一定的结果)

2.返回值的语法:

public static 函数返回值函数名(形参列表){
// 函数的实现、函数体

}

 

 3.函数的返回值分类:


(1)返回值类型为:void,代表函数没有返回值,

函数不需要给调用者任何结果返回
public static void函数名(参数){}

(2)返回值类型为:8种基本数据类型或是对象,代表函数有返回值,

函数必须给调用者返回值对应类型的数据
public static 返回值类型函数名(参数){
return xxx;

}

4.函数返回值的处理:
 

(1)第一种处理方式:定义同类型的变量接收返回值
(2)第二种处理方式:

5. return的作用:


(1) 将函数返回值进行返回值给调用者

(2)结束当前的函数

 

五、函数的执行机制


1.理解:


程序以Main函数作为入口,进入main函数从上往下依次执行,如果遇到函数的调用,则优先执行被调用的函数内部代码,被调用函数执完毕之后,带着带着返回值返回到调用为止,继续后续代码内容

 

 

2.函数的嵌套调用:被调用的函数内部,又调用了其他的函数

六、递归调用


1.理解:一个函数中调用自身函数

2.注意:如果使用递归解决问题,必须给递归设置一个出口,
否则出现无穷递归,最终运行报错,错误信息为:
java.lang.StackOverflowError(栈溢出)

3.递归的思想:


(1)递进:每一次推进,计算都比上一次变得简单,

直至简单到无需继续推进,就能获得结果。也叫到达出口。


(2) 回归:基于出口的结果,逐层向上回归,

依次计算每一层的结果,直至回归到最顶层。

4.案例: 

package demo;
public class Test6{
public static void main(String[] args){
int r =jieCheng(8);

System.out.println(r);
}
// 函数功能:计算n的阶乘
public static int jieCheng(int n){
// n的阶乘 = n * n-1 的阶乘
// 设置一个出口,当n=1 或是0,
结果直接为1
if(n==1 || n==0) return 1;

return n *jieCheng(n-1);

}

}

 

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值