Java—方法基础概念
1.什么是方法
方法就是相当于数学中的函数,但是数学函数只管输入指定数据,输出值。Java方法则需要具体的实现过程。
2.方法的好处:
让代码具有模块化、代码具有复用性以及应用简单
3.方法构造时采用形参,在调用方法的时候则传递的是实参
方法名称在内存中的储存方式:比如add(int a ,int b)在内存中时add _int_int,其他的以此类推
方法中参数的不定参数public void add(int…a){} 实际上传入了一个不定长的数组,使用时候可以直接当作数组
4.方法的重载
作用:减少代码量、简化方法名的记忆
具备的条件:在同一个类当中、方法名完全相同、方法的参数类型可以不同
5.方法递归
递归程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
要素:边界条件和算法
6.递归相关习题
1.计算1+…100
/**
* 计算1+2+..+100
*/
private int sum1(int n) {
int s = 0;
for(int i=1;i<=n;i++) {
s+=i;
}
return s;
}
private int sum2(int n) {
if(n==1) {
return 1;
}
return n+sum2(n-1);
}
2.整数转换为二进制
private void binary(int n) {//n=5
if(n <2) { //终止条件
System.out.println(n);
return;
}
int m = n%2;
System.out.println(m);
binary(n/2);
}
3.辗转相除法找最大公倍数
private int gcd(int a, int b) {
if(a %b ==0) {
return b;
}
return gcd(b,a%b);
}
4.斐波那契数列
/*
* 1,1,2,3,5,8,13,21,34...
*/
p
private int fb2(int n) {
if(n==1 || n==2) {
return 1;
}
return fb2(n-1)+fb2(n-2);
}
5.判断一个数组有序
/*
* 如何判读一个数组是有序的?
*/
private boolean isOrder(int[] a, int index) {
if(index==1) {
return true;
}
if(a[index-1]<a[index-2]) {
return false;
}else {
return isOrder(a, index-1);
}
}