前言:
🌈✨小怡昨天给大家分享了逻辑控制和猜数字小游戏,今天小怡给大家分享Java方法的使用。
1.方法概念及使用
1.1 什么是方法
方法就是一个代码片段,类似于C语言中的“函数”。方法的意义:
- 是能够模块化的组织代码(当代码规模比较复杂的时候);
- 做到代码被重复利用,一份代码可以在多个位置使用;
- 让代码更好理解更简单;
- 直接调用现有方法开发,不必重复造轮子。
1.2 方法定义
方法语法格式:
//方法定义
修饰符 返回值类型 方法名称(参数类型 形参……){
方法体代码;
[return 返回值];
}
注意事项:
- 修饰符:现阶段直接使用public static固定搭配;
- 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void;
- 方法名字:采用小驼峰命名,也就是首字母小写;
- 参数列表:如果方法没有参数,()中什么也不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开;
- 方法体:方法内部要执行的语句;
- 在Java中,方法必须写在类当中;
- 在Java中,方法不能嵌套定义;
- 在Java中,没有方法声明一说。
1.3 方法调用的执行过程
方法调用过程:
调用过程--->传递参数--->找到方法地址----->执行被调方法的方法体---->被调方法结束返回--->回到主调方法继续往下
注意事项:
- 定义方法的时候,不会执行方法的代码,只有调用的时候才会执行;
- 一个方法可以被多次调用。
1.4 实参和形参的关系
方法中的形参相当于数学函数中的自变量。形参的名字可以随意取,对方法都没有任何影响,形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。
注意:在Java中,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体。
代码示例:交换两个整型
这里我们可以看到,在swap函数交换之后,形参x和y的值发生了改变,但是main方法中a和b还是交换之前的值,没有交换成功。
原因分析:
实参a和b是main方法中的两个变量,其空间在main方法的栈(一块特殊的内存空间)中,而形参x和y是swap方法中的两个变量,x和y的空间在swap方法运行时的栈,因此:实参a和b与形参x和y是两个没有任何关联性的变量,在swap方法调用时,只是将实参a和b中的值拷贝了一份传递给了形参x和y,因此对形参x和y操作不会对实参a和b产生任何影响。
解决办法:
传引用类型参数(例如数组来解决这个问题)
1.5 没有返回值的方法
方法的返回值是可选的,有些时候可以没有,没有返回值类型必须写成void。
2.方法重载
2.1 方法重载概念
在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。
注意:
- 方法名必须相同;
- 参数列表必须不同(参数的个数不同,参数的类型不同,类型的次序必须不同);
- 与返回值类型是否相同无关。
方法重载的优势:
可以简化代码和提高代码的可读性。
2.2 方法签名
方法签名即:经过编译器编译修改过之后最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。
3.递归
3.1 递归的概念
一个方法在执行过程中调用自身,就称为递归。递归相当于数学上的“数学归纳法”,有一个其实条件,然后有一个递推公式。
递归的必要条件:
- 将原问题划分成其子问题,注意:子问题必须要与原问题的解法相同;
- 递归出口
解决递归问题:
- 有一个递推公式;
- 找到当前问题的递归“结束条件”。
代码实例:递归求N的阶乘
注意:
- return 代表调到函数外;
- return 0 表示正常终止;
- return 1 表示非正常终止;
- return0 返回为空。
🌈✨今天的分享到这里结束啦,小怡给大家分享了这些知识以及部分代码,大家可以下去自己做一些练习哦,小怡和大家一起学习一起进步,“要想壮志凌云,先要脚踏实地”。