方法总结

方法其本质是为了实现某种功能的工具,有些功能一样,仅仅因为参数不同,这时候可以使用方法的重载,而不用起一堆方法,同时多个相同数据类型的参数,即使使用重载也没有解决,使用可变参数。

递归方法,其实有点类似高中的通项式和数学归纳法。

方法定义

  1. 修饰符
  2. 返回值类型
  3. 方法名
  4. 参数类型
  5. 方法体

形式参数,实际参数

java是值传递

方法的重载

规则

  • 方法名必须相同
  • 参数列表必须不同(参数个数,数据类型,顺序)
  • 方法的返回值类型可以相同,可以不同
  • 仅仅返回值的不同不足以成为方法的重载

可以应用于功能相同,只是参数不同的时候的情况。

进一步:

  • 对于参数个数不同,可以使用可变参数。

  • 对于参数类型不同,可以使用泛型

命令行传参

用于程序运行是需要参数的情况,在代码后面添加参数,传递给main()

注意:

对于package com.guang.method下的Demo01.java

编译的时候,可以在Demo01.java当前目录编译。

运行的时候,需要在com上级目录例如src下运行。

java Demo01.java    
javac com.guang.method.Demo01 hello world

--hello
--world

package com.guang.method;
public class Demo01 {
    public static void main(String[] args) {
        for (String s : args) {
            System.out.println(s);
        }
    }
}

可变参数

使用

在指定参数类型后加一个省略号(...)

一个方法中必能有一个可变参数且在最后定义。

本质是一个数组。

public static void add(int... i){
    if (i.length==0){
    	return;
    }
    int sum=0;
    for (int num : i) {
       sum +=num;
    }
    System.out.println(sum);
}

add(1,2,3);
add(new int[]{1,2,3})

递归

结构

  • 递归头:什么时候不调用自身方法。
  • 递归体:什么时候需要调用自身方法。
阶乘
public static int f(int n){
    if(n==1){
        return 1;
    }else {
        return n*f(n-1);
    }
}
上一篇:com.xu.operator.Demo01


下一篇:Result Maps collection does not contain value for