方法/函数/功能
定义:
其实就是一个带名字的能够解决特定问题的代码; 方法命名规则为小驼峰方式命名
参数:
执行方法的时候需要的一些原料
返回值:
执行完方法后返回的结果
方法定义位置:
类中方法外
语法格式:(重点)
修饰符(static) 返回值类型 方法名 (参数) {
方法体;
return 返回值;
}
方法的分类:(重点)
1.无参无返回值
static(修饰符) void(无返回值) 方法名( ){
}
2.无参有返回值
static(修饰符) 返回值类型 方法名( ){
return 返回值;
}
3.有参无返回值
static(修饰符) void(无返回值) 方法名(参数){
}
4.有参有返回值
static(修饰符) 返回值类型 方法名(参数){
return 返回值;
}
方法的调用:
位置: 在有机会执行到的地方调用 mian
形式:只有方法存在才能调用
方法名();
test();
return关键字:
定义有返回值的方法,必须要有return返回;
return只能用于方法中且标志着一个方法的结束;
当方法规定没有返回值时,return 只是用来结束方法
当方法规定有返回值时, return 用来结束方法,同时还需要送出结果
同一作用域内,return后出现任何语句都不执行
注意
只定义未调用的方法是废的,必须调用才能有效果.
方法的结束
方法执行时遇到结束方法的 } 时,方法正常结束;
当方法中遇到return语句时,方法结束;
方法重载:
java
中允许方法定义时存在一种现象,在一个类中当方法完成的功能类似时,可以使用相同的名称,并且保证方法 的参有所不同,可以参数的个数,类型,循序任何一个不同即可,保证方法签名唯一.可以省略很多想方法名的时间, 方便使用.
public class Demo{
//main函数/主函数
public static void main(String[] args){
}
//定义方法一
static int test(int a,int b ){
}
//定义方法二
static int test(int c,int d ){
}
}
###### 重载应满足的条件---------->两同三不同
1.必须是同一个类中
2.方法名必须相同
3.参数类型不同
4.参数个数不同
5.参数顺序不同
注意: 方法重载与返回值无关
如void method(int x)与int method(int y)不是方法的重载,不能同时存在
不可达语句:
方法中同一作用域内,return后的任何语句不执行,又称不可达语句;
循环中同一作用域内,break后任何语句不执行
一眼就能看出来永远没有机会执行的语句,程序自动检测这种语句,一旦检测到则报错
方法签名
方法的签名,确保在一个类中的 唯一性
.方法的签名只看方法名和形参(类型,个数,顺序),与修饰符和返回值类型 形参名无关.
在一个类中,方法的调用就是通过方法签名来确定方法的.
递归
自己调用自己
public class Demo{
//main函数/主函数
public static void main(String[] args){
//方法的调用
test();
}
//定义一个方法
static void test( ){
test();
}
}
停止重复的递归用递归头,例如: if( )…
归结构包括两个部分:
1.定义递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
2.递归体:什么时候需要调用自身方法以及自身需要做什么操作。
递归的优点:
程序简单
递归的缺陷:
占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多
注意:(了解)
任何可用递归解决的问题也能使用迭代解决。但递归方法可以更加自然地反映问题,并且易于理解和调试。 在不强调效率并且有足够的内存空间时,可以采用递归;在要求高性能的情况下尽量避免使用递归,递归调 用既花时间又耗内存。