定义
  • 语句的集合,在一起执行一个功能
  • 包含于类或对象中
  • 在程序中被创建,在其他地方被引用
  • 设计原则:保持方法的原子性,一个方法只完成一个功能,利于后期的扩展
  • 命名规则:首字母小写和驼峰原则 runRun()
public class methodText {
    public static void main(String[] args) {
        int c = add(1, 2);
        System.out.println(c);
    }

    public static int add(int a, int b){
        return a + b;
    }
}
方法的重载
  • 重载:在一个类中,有相同的函数名称,但是形参不同的函数
    • 方法名称必须相同
    • 参数列表必须不同(个数、类型、参数排列顺序)
    • 返回类型可以相同也可以不相同
    • 仅仅返回类型不同不能成为方法的重载
public class methodText {
    public static void main(String[] args) {

        int c = add(1, 2);
        double d = add(5.6,5.5);
        System.out.println(c);
        System.out.println(d);
    }

    public static int add(int a, int b){
        return a + b;
    }

    public static double add(double a, double b){
        return a + b;
    }
}
命令行传参
public class forText {
    public static void main(String[] args) {
        //args.length 数组长度
        for(int i = 0; i < args.length; i++){
            System.out.println("args[" + i +"]:" + args[i]);
        }
    }
}
//命令行进入src目录,javac forText.java编译
//输入:java forText this is a sample
可变参数
public class changArgs{
    public static void main(String[] args) {
        changArgs demo1 = new forText();
        demo1.printMax(12,4,45);
        demo1.printMax(new double[] {1,23,4});
    }
    public void printMax(double... numbers){
        double result = numbers[0];
        for(int i = 1; i < numbers.length; i++){
            result = result < numbers[i] ? numbers[i] : result;
        }
        System.out.println("最大值为:"+result);
    }
}
递归

递归头:什么时候不调用自身方法。如果没有头,将陷入死循环

递归体:什么时候需要调用自身方法

public class dg {
    public static void main(String[] args) {
        dg demo1 = new dg();
        int val = demo1.fuc(5);
        System.out.println("5! = " + val);
    }
    public int fuc(int n){  //n为大于一的整数
        if (n == 1){
            return 1;
        }else{
            return n * fuc(n - 1);
        }
    }
}