语句的集合,它们在一起执行一个功能
设计原则
方法包含一个方法头和一个方法体
重载是在一个类中,有相同的方法名,不同的形参
重载规则
package method; public class MainMethod { public static void main(String[] args) { for (String arg : args) { System.out.println(arg); } } }
# 编译 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>javac MainMethod.java # 运行 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>java MainMethod 错误: 找不到或无法加载主类 MainMethod # 无法直接运行,需要到src目录下 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>cd .. # 包名.类名,运行成功,但无输出,因没有传递参数 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod # 运行,传递'this is main method' D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod this is main method this is main method
...
)public static void main(String[] args) { double sum = 0; sum = add(sum, 1, 2, 3, 4, 5); System.out.println(sum); } public static double add(double sum, int... arg) { for (int i : arg) { sum += i; } return sum; }
Java栈是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。
递归会多次调用方法,易导致栈溢出。
递归结构
// 计算n! public int calc(int n) { if (n == 1) { return n; } else { return n * calc(n - 1); } }