
重载的形式:
函数名相同,1:参数类型及2:数量不同,或者3:参数顺序不同
重载的作用:
增加了代码的易读性,例如同一个sum()可以计算不同类型之间的和,方法功能相似,但要操作的数不同
注意:
1:方法重载和返回值类型,修饰符列表无关
2:避免重复定义
例
public class method_overload{
public static void main(String []name)
{
sum(10,23);
sum(12.1,23.5);
}
//两个整数的和
public static void sum(int a,int b)
{
int c=a+b;
System.out.println("重载1");
System.out.println(a+" + "+b+" = "+c);
}
//两个浮点数的和
public static void sum(double a,double b){
double c=a+b;
System.out.println("重载2");
System.out.println(a+" + "+b+" = "+c);
}
}
方法递归(recursion)
常言道:迭代的是人,递归的是神
方法的递归调用就是方法自己调用自己
首先先来看一个普通的方法调用
public class Methode
{
public static void main(String []arys)
{
}
public static void Method1()
{
System.out.println("Method1 开始");
Method2();
System.out.println("Method1 结束");
}
public static void Method2()
{
System.out.println("Method2 开始");
Method3();
System.out.println("Method2 结束");
}
public static void Method3()
{
System.out.println("Method3 开始");
Method4();
System.out.println("Method3 结束");
}
public static void Method4()
{
System.out.println("Method4 开始");
Method5();
System.out.println("Method4 结束");
}
public static void Method5()
{
System.out.println("Method5 开始");
System.out.println("Method5 结束");
}
}
//运行结果
可以看到Method(1-5)基本相同,而方法的递归调用的执行机制和上面差不多,只不过是自己调用自己
常见的Fibonacci数列
public class Method_recursion
{
public static void main(String []arys){
System.out.println("请输入要查询的Fibonacci数的项数");
Scanner in=new Scanner(System.in);
int n=in.nextInt();
for(int i=0;i<=n;i++)
System.out.print(sum(i)+" ");
}
public static int sum(int n){
if(n==0||n==1)
return 1;
else
return sum(n-1)+sum(n-2);
}
}
用递归计算1-n的和
public class Method_recursion
{
public static void main(String []name){
int n=100;
System.out.println(sum(n));
}
public static int sum(int n)
{
if(n==1)
return 1;
else
return n+sum(n-1);
}
}