课程目标
1.方法的概念
2.方法的定义
3.方法的组成
4.方法的调用
5.方法的好处
6.递归
1.方法的定义:
概念:实现特定功能的一段代码,可重复使用
public static void 方法名称(){ //(遵循标识符命名规范)首字母小写,拼接词首字母大写
//方法主体
}
将需要在多个位置重复使用的一组代码,定义在方法内部
1.定义的位置:
//位置(类的外部)
public class TestDefinitionFunction{
//位置2
public static void main(String[]args){
//位置3(主方法的内部)
}
//位置4
}
//位置5(类的外部)
方法定义的正确位置:位置2,位置4(不能产生嵌套)
方法定义在类的内部,与main方法并列
2.定义第一个方法
床前明月光
----------
疑是地上霜
----------
举头望明月
----------
低头思故乡
----------
public class TestMethod{
public static void main(String[]args){
System.out.println("床前明月光");
System.out.println("疑是地上霜");
System.out.println("举头望明月");
System.out.println("低头思故乡");
}
//定义:打印十个分隔符的函数
public static void printsign(){
for(int i=1;i<=10;i++){
System.out.print("-");
}
System.out.println();
}
}
2.方法的调用
printSign();
注意:调用方法时,会优先执行方法内部代码,结束后,返回到方法调用处,继续向下执行
3. 方法的参数
多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数据,才能使方法完成相应的功能。
调用方法时,所传入的数据被称为"参数".
4.形参与实参
public static void 方法名称(形式参数){
//方法主体
}
"形参"等价于"局部变量的声明"
调用方法:
方法名称(实际参数);
"实参"等价于"局部变量的赋值"
5.单个参数
6.多个参数
8.如何定义参数
根据具体的业务需求,来定义方法的参数
9.返回值与返回值类型
概念:方法执行后的返回结果
方法执行后,一些情况下无需返回结果;另一些情况下则必须返回结果
例如:存款操作无需返回结果
取款操作必须返回结果
public static 返回值类型 方法名称(形式参数列表){
//主体方法
return value;//返回值
}
调用语法:
变量=方法名称();
//变量类型和返回值类型一致
需求:定义方法,计算两个整数的和,并返回结果,在main中打印.
10.return关键字
一个方法只能有一个返回值
return的两种用法:
1.return value;//表示结束当前方法,并伴有返回值,返回到方法调用处。
2.应用在没有返回值类型(void)的方法中:
return;//表示结束当前方法,直接返回到方法调用处.
public static void show(){
for(int i=1;i<=100;i++){
if(i==50){
return;
}
}
}
2.总结
注意:一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套.
经验:一个方法只做一件事
好处:
减少代码冗余
提高复用性
提高可读性
提高可维护性
方便分工合作
3.方法的多级调用
public class TestNestInvoke{
public static void main(String[]args){
m1();
}
}
public static void m1(){
System.out.printlln("m1()-satrt");
m2();
System.out.println("m1()-end");
}
public static void m2(){
System.out.println("m2()-start");
System.out.println("m2()-end");
}
4.递归
什么是递归?
解决具有既定规律的问题时,在方法内部再次调用自身方法的一种编程方式
何时使用递归?
当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己
使用循环解决的常规问题,都可以替换为递归解决
如何正确使用递归?
设置有效的出口条件,可以让调用链上的每个方法都可以正确返回,避免无穷递归.
1.递归阶乘
阶乘的定义:n! =n*(n-1)*(n-2)*(n-3)...
5!=5*4!
4!=4*3!
3!=3*2!
2!=2*1!
1!=1
所有能以递归解决的问题,循环都可以解决,当解决复杂问题时,递归的实现方式更为简单
5.总结
方法的概念:
实现特定功能的一段代码,可以反复使用
方法的组成:
public static 返回值类型 方法名(形参列表...)
//方法主体
[result 返回值]
}
方法的调用:
方法名(实参列表...)
方法的好处:
减少冗余,提高复用性,可读性,可维护性,方便分工合作
递归:
将大问题拆分成若干个小问题,大小问题的解决方法相同,有固定规律,需设置有效的出口条件,方法中自己调用自己