一.成员方法
1.基本介绍
在某些情况下,我们要需要定义成员方法
(
简称方法
)
。比如人类
:
除了有一些属性外
(
年龄,姓名
..),
我们人类还有一 些行为比如:
可以说话、跑步
..,
通过学习,还可以做算术题。这时就要用
成员方法
才能完成。现在要求对
Person
类完善。
2.方法的调用机制原理
![](https://i-blog.csdnimg.cn/blog_migrate/cc4a2bd97abc37620f57c3992886b80e.png)
3.
为什么需要成员方法
看一个需求:
请遍历一个数组
,
输出数组的各个元素值。
解决思路 1:
传统的方法,就是使用单个
for
循环,将数组输出,大家看看问题是什么?
解决思路
2:
定义一个类
MyTools ,
然后写一个成员方法,调用方法实现
,
看看效果又如何
class MyTools {
public void printArr(int[][] map) {
System.out.println("=======");
for(int i = 0; i < map.length; i++) {
for(int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + "_");
}
System.out.println();
}
}
}
4.
成员方法的好处
1)
提高代码的复用性
2)
可以将实现的细节封装起来,然后供其他用户来调用即可
5.成员方法的定义
访问修饰符 返回数据类型 方法名(形参列表
..
)
{//
方法体
语句;
return
返回值
;
}
1)
形参列表:表示成员方法输入
cal(int n)
,
getSum(int num1, int num2)
2)
返回数据类型:表示成员方法输出
, void
表示没有返回值
3)
方法主体:表示为了实现某一功能代码块
4) return
语句不是必须的。
5)
老韩提示
:
结合前面的题示意图
,
来理解
5.注意事项和使用细节
①访问修饰符
(
作用是控制 方法使用的范围
)
如果不写默认访问,
[
有四种
: public, protected,
默认
, private],
具体在后面说
②返回数据类型
1)
一个方法最多有一个返回值
[
思考,如何返回多个结果 返回数组
]
2)
返回类型可以为任意类型,包含基本类型或引用类型
(
数组,对象
)
3)
如果方法要求有返回数据类型,则方法体中最后的执行语句必须为
return
值
;
而且要求返回值类型必须和
return
的
值类型一致或兼容
4)
如果方法是
void
,则方法体中可以没有
return
语句,或者 只写
return ;
③方法名
遵循驼峰命名法,最好见名知义,表达出该功能的意思即可
,
比如 得到两个数的和
getSum,
开发中按照规范
![](https://i-blog.csdnimg.cn/blog_migrate/44b2d55acf6d385d0622e4d2f269410c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/099c6cc86b418417e8e57ab3c21a1a0a.png)
6.
类定义的完善
![](https://i-blog.csdnimg.cn/blog_migrate/87df3cbe46770cbe72e72ea3ba1a5cf6.png)
二.成员方法传参机制
1,基本数据类型的传参机制
![](https://i-blog.csdnimg.cn/blog_migrate/8a90e94ead5883474afa93f556b84e72.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e38d3ce3d823d60849b11c4b898544a3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f776e36e37060b8e6996ca75b04f4e3a.png)
2.
结论及示意图
引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参!
![](https://i-blog.csdnimg.cn/blog_migrate/1d029a7a84687799e98ee9ec9da97eb2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/158ba037bd611ab836a00f7cd7f70d9b.png)
三.方法递归调用
1.基本介绍
简单的说
:
递归就是方法自己调用自己
,
每次调用时传入不同的变量
.
递归有助于编程者解决复杂问题
,
同时可以让代码变得简洁
2.递归能解决什么问题?
3,递归举例
4.递归重要规则
![](https://i-blog.csdnimg.cn/blog_migrate/07b5989c4ec49755a4204d57160c4d9c.png)
说实话 上强度了 没咋学会 准备下周再复看 emmmmm