1.方法的定义与调用
Java方法是语句的集合,相当于一个在类中的功能块,一般用于实现单一的某个功能(原子性)。
比如System.out.println()这里,System就是Java自带的一个类,out是类中的一个对象,println()则是System类中的一个方法,专门用于输出语句。
方法示例:
public (static) void(int, float, String..) 方法名 (输入参数样式){
(return a;)
}

static属于修饰符(可选),修饰符主要是告诉编译器如何调用该方法,定义了该方法的访问类型。static表示当前方法为静态方法,可以在类中直接调用,若没有static修饰,则需要先声明类的一个实例,再调用实例的该方法;
void这里是返回值类型,指方法返回参数的数据类型。void表示当前方法无返回值,也可设定为int、float等,表明该方法需要返回对应的数据类型;
方法名是方法的实际名称。方法名和参数表共同构成方法签名,要求满足首字母小写及驼峰原则;
方法名后的括号内是参数类型(形式参数)。当方法被调用时,用户把数值(实参)传递给形式参数,然后交给方法内步骤运行计算。参数是可选的,方法可以不包含参数,也可以类似于(int a, int b),表明需要输入几个参数,限定什么数据类型等;
方法体包含具体的语句,定义该方法的功能。
方法调用示例:
结果:
2.方法的重载
方法重载就是在一个类中,有相同的函数方法名,但形参不同的函数。当方法名称相同时,编译器会根据调用方法的参数个数、类型等逐个比对,如果匹配失败,则编译器报错。
1)方法名称相同;
2)方法形参不同,包括个数不同、数据类型不同或者参数排序不同等;
3)方法返回类型可以不同也可以相同;
4)若只有返回类型不同,不足以成为方法的重载。

3.命令行传参
main方法也包含了参数类型,我们可以在命令行中尝试着对主方法进行传参,了解下对应的结果。

在命令行中对该java文件进行编译:javac Test.java
然后对于这个包内编译好的字节码文件,我们需要退出到src根目录来执行(路径要包含所有的包名,如下图所示),并且传入参数:

可以看到通过命令行可以完整地传入数组参数并且一一打印。
4.可变参数
JDK1.5开始,Java支持传递同类型的可变参数给一个方法。我们通过在对应参数后加一串省略号(...)来实现。要注意的是,一个方法只能用到一个可变参数(必须是同类型),该可变参数必须是方法的最后一个参数,其他正常参数必须放于可变参数之前。示例如下:
结果:
5.递归
一个方法内通过调用自身方法来实现某些计算或者功能。通过递归方法我们可以将一些复杂问题转换为简单问题交由计算机处理,即用有限的语句来定义对象的无限集合。
注意:一般递归只用在较小的计算量之下,大计算量场景用递归可能造成系统崩溃,我们需要考虑其他算法实现。
递归结构的组成:
1)递归头:停止递归的条件,如果没有递归头,程序将陷入死循环,导致计算机栈溢出崩溃;
2)递归体:递归的条件与步骤。
示例如下:
结果:
浙公网安备 33010602011771号