方法
public class Demo {
//main方法
public static void main(String[] args) {
int sum = add(1,1);//实际参数:实际调用给他的参数
System.out.println(sum);
}
//加法方法
//修饰符 返回值类型 方法名 (参数类型 参数名){
public static int add(int a,int b){//形式参数:用来定义作用的
//方法体
return a+b;//返回值:存在返回值的情况下一定要通过return返回出去
}
//设计方法的原则:(原子性)一个方法完成一个功能
}
方法的重载
在一个类中,有相同的函数名称,但形参不同的函数。
- 方法名必须相同
- 参数列表必须不同(个数、类型、参数排列顺序不同等)
- 方法的返回值类型可以相同也可以不相同
- 仅仅返回类型不同,不足以成为方法重载
方法名相同时,编译器根据调用方法的参数个数、类型、等逐一匹配,以选择对应方法,如果匹配失败,就会报错
可变参数
public class Demo3 {
public static void main(String[] args) {
Demo3 demo3 = new Demo3();
demo3.text(1);
}
public static void text(int ...i){
System.out.println(i);
}
}
一个方法中只有一个可变参数,必须是方法的最后一个参数。任何普通的参数必须在他之前声明
递归
public class Demo2 {
public static void main(String[] args) {
System.out.println(i(1));
}
//递归思想 自己调用自己 (能不用就不用,适合计算小一点的数)
public static int i (int n){
if(n==1){
return 1;
}else{
return n*i(n-1);//阶乘
}
}
public static void text(){
text();//死循环 栈溢出
}
}
递归结构包括:
- 递归头:什么时候不调用自身方法。如果没有头,会陷入死循环。
- 递归体:什么时候需要调用自身方法。