方法
1、什么是方法:一个代码片段,类似C语言的“函数”
2、意义:
能让复杂代码模块化
代码可重复使用,一份代码可在多个位置使用
更方便理解
能直接调用现有方法开发
3、代码的优化:
例:二重循环时,可以把一个循环写成方法形式
4、语法:
public static 方法返回值 方法名称([参数类型 形参 …]){
方法体代码;
[return 返回值];
}
返回值变量 = 方法名称(实参…);
5、注意
public static有特殊含义,要写
定义方法时,可无参数,但要有参数的指定类型
定义方法时,如无返回值,可写成void
定义方法时参数为“形参”,方法调用时的参数为“实参”
方法的定义要在类之中,代码在调用位置的上下都行
Java无“函数的声明”
6、调用规则
定义方法时不执行,调用才执行
被调用时,会把实参赋值给形参--------传值调用
参数传完,实现方法体代码
执行完毕后,回到调用位置往下执,行
一个方法可被多次调用
7、实参和形参------形参是实参的一份临时拷贝
实例:在方法(a、b)里使用临时变量交换x、y,ab改变而xy不变,
解决:引用类型参数,数组
方法的重载
1、原因:需要让一个函数同时兼容多种参数
2、例:方法名add,有时计算int相加,有时计算double相加
3、规则:针对同一个类 或在继承的前提下
方法名相同
方法名格式推荐“小驼峰”
方法的参数不同(个数或类型)
方法的返回类型不影响重载-----只有返回值不同的时候,不构成重载
例:
public static int add(int x, int y)
public static double add(double x, double y)
public static double add(double x, double y, double z)
方法的递归
1、概念:方法在执行该过程中调用自身—类似“数学归纳法”
2、有一个趋近于终止的条件
3、本质:把大问题化为小问题
4、思考:横向思考----5!=5*4!..………压栈、出栈
执行:代码纵向-----先递、保留现场,后归、输出结果
5、递归与非递归
适合递归的:斐波那契数列、二叉树等等
适合非递归的:推荐使用循环,更高效