方法
定义
JAVA中的方法就和C语言中的函数一样,方法是组织语句的一级单位。
形式
方法标准格式
public static 方法返回值类型 方法名称(形参列表) {
方法的指令;
return 返回值; }
举个例子:
两数相加:
public static int add(int a, int b) {
int n = a + b;
return n; }
方法名称:add
形参列表:(int a, int b)
返回值类型:int
在这个方法中a和b是形参,是一个虚拟的变量。
注意:没有返回值的时候可以用使用 void(缺乏的、无效的)来表示。
void严格意义上讲不是数据类型,仅仅是用在方法定义时,表示这个方法没有返回值的一个特殊标记。
举例:
public static void ss() {
System.out.println("Hello World");
}
方法名称:ss
形参列表:不需要,空的 —— ()
返回值类型:没有,空的 —— void
调用
方法的调用就是使用方法的方式
举例:
public static void main(String[] args){
System.out.println(add(3,5));
}
public static int add(int a, int b) {
int n = a + b;
return n; }
在这个方法中,add(3,5);是标准格式 (方法名(实参列表);3和5是实参。
方法执行过程分析
JVM内存区域划分
栈是JVM划分出的内存区域的其中一个区域:栈遵循数据结构的栈结构原则:先进后出。
栈里保存的基本单位是 栈帧(Frame)
栈帧—代表方法的一次调用
画图分析:
主要保存的是局部变量
注意:在递归方法中,虽然多次调用,变量看起来是同一个,但实质上是不同的变量。
方法的重载
有些时候我们需要用一个方法同时兼容多种参数的情况, 我们就可以使用到方法重载.
比如:上面的方法:
//此时的实参都是int型
public static void main(String[] args){
System.out.println(add(3,5));
}
public static int add(int a, int b) {
int n = a + b;
return n; }
如果int型的实参和double的实参一块计算,就会出现错误。
比如:
public static void main(String[] args){
System.out.println(add(3,5));
System.out.println(add(3.25,5.24));
}
public static int add(int a, int b) {
int n = a + b;
return n; }
这样不行,因为此方法的返回值是int型,不能适用于double型实参。
应该这样写代码:
public static void main(String[] args){
System.out.println(add(3,5));
System.out.println(add(3.25,5.24));
}
public static int add(int a, int b) {
int n = a + b;
return n; }
public static double add(double a, double b) {
double n = a + b;
return n; }
同一个方法名字, 提供不同版本的实现, 称为 方法重载
重载的规则:
1.方法名相同
2.方法的参数不同(参数个数或者参数类型)
3.方法的返回值类型不影响重载