什么是方法?
方法就是一个代码片段,类似于C语言中的"函数"
我们使用方法主要是为了:
1.能够模块化的组织代码(当代码模块比较复杂的时候)
2.让代码重复使用,一个代码可以在多个位置使用
3.让代码更好理解,更简单
4.直接调用现有方法开发,不必重复编写
方法定义语法
public static 方法返回值 方法名称([参数类型 形参...]){
方法代码;
[return 返回值];
}
//方法调用
返回值变量=方法名称(实参...);
实例:
class Test{
public static void main(String[] args){
int a=10;
int b=20;
int ret=Add(a,b);
System.out.println(ret);
}
public staric int Add(int x,int y){
return x+y;
}
}
注意:1.public 和static 在此处有特定含义,暂不讨论
2.方法定义时,参数可以没有,每个参数要指定类型
3.方法定义时,返回值也可以没有,如果没有返回值类型则应写成void
4.方法定义时的参数叫做"形参",方法调用时的参数称为"实参"
5.方法的定义必须在类之中,代码书写在调用位置的上方或下方均可
6.JAVA中没有"函数声明"这样的概念
7.对于基础类型来说,形参相当于实参的拷贝,即传值调用,我们可以通过引用类型传参(例 如数组)
方法重载
同一个方法提供不同版本的实现
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = add(a2, b2);
System.out.println("ret2 = " + ret2);
double a3 = 10.5;
double b3 = 10.5;
double c3 = 20.5;
double ret3 = add(a3, b3, c3);
System.out.println("ret3 = " + ret3);
}
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}
}
重载规则:
针对同一个类:
1.方法名相同
2.方法的参数不同(参数个数或者参数类型)
3.方法的返回值类型不影响重载
当两个方法的名字相同, 参数也相同, 但是返回值不同的时候, 不构成重载.
方法递归
一个方法在执行过程中调用自身, 就称为 “递归”.
递归相当于数学上的 “数学归纳法”, 有一个结束条件, 然后有一个递推公式
实例:递归求 1+2+3+…+10;
public class addNum{
public static void main(String[] args){
int num=10;
System.out.println(Add(num));
}
public static int Add(int num){
if(num==1){
return 1;
}
return num+Add(num-1);
}
}
递归是一种重要的编程解决问题的方式.
有些问题天然就是使用递归方式定义的(例如斐波那契数列, 二叉树等), 此时使用递归来解就很容易.
有些问题使用递归和使用非递归(循环)都可以解决. 那么此时更推荐使用循环, 相比于递归, 非递归程序更加高效.