一、方法含义
什么是方法?
方法(method)是程序中最小的执行单元。
例如:
![](https://i-blog.csdnimg.cn/blog_migrate/5257691ea93ce4a33b28477c6a401328.png)
实际开发中,什么时候用到方法?
重复的代码、具有独立功能的代码可以抽取到方法中。
实际开发中,方法有什么好处?
可以提高代码的复用性
可以提高代码的可维护性
二、方法的格式(方法必须先定义后调用,否则程序报错)
方法的定义
把一些代码打包在一起,该过程称为 方法定义 。
方法的定义格式:
最简单的方法定义格式:
public static void 方法名(){
方法体(就是打包起来的代码);
}
带参数的方法定义格式:
单个参数:
public static void 方法名(参数){……}
多个参数:
pbulic static void 方法名(参数1,参数2,……){……}
补充:形参和实参
形参:全称形式参数,是指方法 定义 中的参数。
实参:全称实际参数,方法 调用 中的参数。
带返回值方法的定义格式:
方法的 返回值其实就是方法运行的 最终结果。
如果在调用处要根据方法的结果去编写另外一段代码逻辑,那么为了在调用处拿到方法产生的结果就需要定义带有返回值的方法
public static 返回值类型 方法名(参数){
方法体;
return 返回值;
}
注意事项:
1.方法不调用就不执行;
2.方法与方法之间是平级关系,不能互相嵌套定义;
3.方法的编写顺序和执行顺序无关;
4.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要编写return后面不能跟具体的数据;
5.return语句下面,不能编写代码,因为永远执行不到,属于无效代码;
补充:return关键字:
1.方法没有返回值:可以省略不写。如果书写,表示结束方法
2.方法有返回值:必须要写。表示结束方法和返回结果
方法调用
方法定义后并不是直接运行的,需要手动调用才能执行,该过程称为 方法调用。
方法的调用格式:
最简单的方法调用格式:
方法名();
带参数的方法调用格式:
单个参数:
方法名(参数);
多个参数:
方法名(参数1,参数2,……);
注:方法调用时,参数的数量与类型必须与方法定义中小括号里面的变量一一对应,否则程序报错。
带返回值方法的调用格式:
直接调用:方法名(实参);
赋值调用:整数类型 变量名=方法名(实参);
输出调用:System.out.println(方法名(实参));
三、方法的重载
在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。
每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。
简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。
参数不同:个数不同、类型不同、顺序不同。
四、方法的内存
方法调用的基本内存原理
执行顺序为:先进后出;
先运行的方法最后输出。
方法传递基本数据类型的内存原理
基本数据类型:整数类型、浮点数类型、布尔类型、字符类型
例如:
public class Test{
public static void main(String[] args){
int a = 10;
double b = 20.0;
}
}
其内存图为:
![](https://i-blog.csdnimg.cn/blog_migrate/c73da1ae5b23691cb8dbaeea29edeac0.png)
其中变量中存储的是真实的数据
方法传递引用数据类型的内存原理
引用数据类型:除去基本数据类型以外的其他数据类型(通过new进行定义的数据类型就是应用数据类型)
例如:
public class TestStudent {
public static void main(String[] args) {
int[] arr = {1,2,3};
}
}
内存图为:
![](https://i-blog.csdnimg.cn/blog_migrate/d0f7ed092d49792a72503439a1b46385.png)
其中变量中存储的是地址值。
引用:使用了其他空间中的数据。
从内存的角度解释 | 基本数据类型 | 引用数据类型 |
解释 | 数据值是存储在自己的空间中。 | 数据值是存储在其他空间中,自己空间中存储的是地址值。 |
特点 | 赋值给其他变量,也是赋的真实的值。 | 赋值给其他变量,赋的地址值。 |
图示 |
![]() |
![]() |