方法的定义:
方法头部有三要素:
方法名:首字母小写
参数列表:有几个原始数据,就有几个参数
返回值类型:结果的类型
(方法中只需要定义结果变量和中间临时变量)
方法的调用:
1.方法被调用时,传给被调用方法的是参类型需要和定义的形参类型匹配
2.方法调用语句所处的上下文环境要和方法定义的返回值类型匹配
3.如果在主方法中直接调用自定义方法,方法需要关键值stataic修饰
static:表示静态,常驻内存
当一个方法用不同的对象得到的结果都是一样的,这样的方法都可以生明为静态的;调用时,直接用类名,方法名调用。
方法的重载:
在JAVA中允许一个类中存在多个不同的方法,要求各个同名方法的参数个数或类型不同
返回值类型不能作为重载方法区分的依据;必须为参数类型或个数才可以
单元测试:在自己类里面写入main方法
递推:从小往大推
递归:一个方法直接或间接的调用自己
递归必需要有一个出口
斐波那契数列兔子生殖问题:(代码如下)
规律:1 1 2 3 5 8 13--------
f(n)=f(n-1)+f(n-2)
public static void main(String[] args){
System.out.println(f(n));
}
static int f(n) (int n){
if(n==1||n==2){
return 1;
}else{
return f(n)=f(n-1)+f(n-2)
}
}
递归方法求
阶乘:
static int jiecheng (int n){
int r=1;
if (n==1){
r=1;
}else{
r=n*jiecheng(n-1)
}
return r;
}
public static void main(String[] args){
}
public static void main(String[] args){
System.out.println(jiecheng(n));
}
}
汉若塔问题:
public stat
ic void hanoi(int n,char A ,char B ,char C ){
if (n==1){
System.out.println("move:"+n +A +"--->" +c);
}else{
hanoi(n-1,A ,C,B);//将n-1个盘子由A经过C移动到B
System.out.println("move:"+n +A +"--->" +c);
hanoi(n-1, B ,A ,C);//剩下的n-1盘子,由B经过A 移动到C
}
}
public static void main(String[] args){
System.out.println("移动汉诺塔的步骤:");
hanoiz(n,'a' ,'b', 'c');
}
}