JAVA基础中对方法(函数)的总结
在Java中,方法的存在简化了复杂的问题域,是复用分离思想的体现。
每一个方法,我都可以把它看成一个独立的功能模块,在一个类当中可以有多个方法存在,而它们的目的或功能都各不相同。
我们在写方法时,都要先定义这样的模块,包括给它起名字,给它定制运行前的先决条件,定制它运行的步骤,结束后返回什么样的结果。
**定义的语法:**访问修饰符 返回类型 方法名(参数){……代码块……}
试例
![图1](https://i-blog.csdnimg.cn/blog_migrate/173a990f539730217492c6fed5552431.png)
方法的调用:
当我们需要使用这个方法时,在本类里面我们可以直接用
方法名(实参)
,直接调用这个方法。
在同一个包里,但是不同类里:
类名.方法名(实参)
来调用这个方法。
当然也要受到访问修饰符的限制
参数
当我们的方法运行需要某个外部数据参与时,那么我们可以通过“参数”来进行传递,但是参数只能进行值的传递
参数又分为 实参和 形参
形参(形式参数):如图一所示,它在于方法定义是方法名的( )内,它决定了传什么样的参,传多少个参;但是它只是定义了参数的数据类型,它用来接收实参的数据.
实参(实际参数):实参是写在方法调用处的括号内如:方法名(实参列表)。当我们调用这个方法是传递给形参的数据叫做实参,它是实际参与运算的数据
实参和形参的匹配完全是根据个数;数据类型;顺序。传递是和变量名无关的,它们永远只是值的传递!!!
基本数据类型传递的时候,因为传递的是值,方法内部改变了,但是方法外部没有改变
特殊:引用数据类型,应用数据类型进行传递的时候,所传递的是引用,如果变得是应用所指向的值,那么无需做返回,里面变化了,外面也变化
如果引用类型变得是引用本身,那么方法里面变了,外面也不会变,因为引用指向不再相同。
可以参照: https://blog.csdn.net/Norte_L/article/details/80250057
方法的返回
当我们需要这个方法给我们一个结果时,那么我们在声明方法时,就需要决定我们需要一个什么样的结果,所以定义方法时就需要定义你想返回哪一种类型的结果(图一),在这个方法的代码块中返回你需要的值,那么这时候我们用
return
关键字,语法:
return 变量
注意,返回的变量类型必须和你在声明方法时所定义的返回类型一致。
那么当返回类型设置为
void
时,那么这时候的返回类型为空,意思是不需要返回值
方法的调用栈
当一个方法的里面嵌套了多个方法的时候,那么这叫做方法的调用栈,那么最先执行的方法,是最后执行的。
比如:
当
方法1
调用
方法2
;
方法2
调用
方法3
,这种情况下,
方法1
最先被执行,进入方法之后,调用
方法2
,进入
方法2
之后,调用
方法3
,
方法3
执行完,;返回上一层
方法2
的方法调用处,执行剩余代码;
方法2
执行完,返回
方法1
的方法调用处,执行剩余代码。
那么
方法1
最先被执行,
方法3
最晚被执行,但是
方法3
最先结束,
方法1
最晚结束。
方法的递归
当一个方法调用它自身时,这时候利用方法的调用栈会呈现出一个循环的效果,但是很不容易控制,一不小心就会变成无限递归,所以递归一定要有个边界条件
可参考: https://blog.csdn.net/it_wangxiangpan/article/details/8479227
方法的重载
当一个类中可以存在多个相同的方法名,但是要求所传递的参数类型或者参数个数量或者参数的顺序不同,这种叫方法的重载,
一个类中有多个方法名相同,仅仅是因为参数的不同而导致每个方法实现的具体功能有细微差别,那么程序就会根据传递的参数的不同而判断使用哪种方法,从而避免我们去为每个相同功能的方法重新取名的麻烦。
可参考: https://blog.csdn.net/u010180815/article/details/79463631