1,什么是方法?
1,方法
方法是程序中最小的执行单元。
2,方法有什么用呢?
答:将重复的,具有独立功能代码进行打包,提高代码的复用性。
提高代码可维护性,假如代码出问题也只需修改方法里的代码就可以了。
2,方法的格式
1,方法定义和调用
方法定义后并不是直接运行,需要手动调用才能执行,该过程称为方法的调用
1,方法定义及调用格式
1,简单方法
把一些代码打包在一起,该过程称为方法定义
注:方法定义在类的内部,main方法的外部,因为程序执行过程会先执行main方法,所以其他方法需要在main方法中调用。
方法 | 定义 | 调用 |
简单方法 | public static void 方法名(){ 方法体(就是打包起来的代码); } | 方法名(); |
带参数方法 | public static void 方法名(参数1,参数2,......){ 方法体(就是打包起来的代码); } | 方法名(参数1,参数2,.....); |
带返回值方法 | public static 返回值类型 方法名(参数1,参数2,......){ 方法体(就是打包起来的代码); return 返回值; } | 直接调用:方法名(实参); 赋值调用: 整数类型 变量名 = 方法名(实参); 输出调用: System.out.println(方法名(实参)); |
2,带参数方法
定义格式:
public static void 方法名(参数1,参数2,......){ 方法体(就是打包起来的代码); } |
调用格式:
方法名(参数1,参数2,.....); |
public class itheima {
public static void main(String[] args) {
//调用方法
sum(10,20);
}
//定义一个方法体
public static void sum(int num1,int num2) {
int sum = num1 +num2;
System.out.println(sum);
}
}
注:
方法调用时,参数的数量与类型必须与方法定义中小括号里面变量一一对应,否则报错。
方法调用时,形参和实参必须一一对应,否则程序将会报错。
3,带返回值方法
方法定义:
public static 返回值类型 方法名(参数1,参数2,......){ 方法体(就是打包起来的代码); return 返回值; } |
方法调用:
直接调用:方法名(实参); 赋值调用:整数类型 变量名 = 方法名(实参); 输出调用:System.out.println(方法名(实参)); |
方法的返回值其实就是方法运行的最终结果 。
使用场景:
- 在调用出要根据方法的结果,去编写另外一段代码逻辑
- 为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法
public class itheima { public static void main(String[] args) { //方法直接调用 getresult(10,20,30); //赋值调用 int sum = getresult(10,20,30); System.out.println(sum); //输出调用 System.out.println(getresult(20,30,40)); } //带返回值方法定义,返回值int类型 public static int getresult(int num1,int num2,int num3) { int result = num1 + num2 + num3; //返回方法最终计算结果返回给调用处 return result; } }
2,形参和实参
- 形参:全称形式参数,是指方法定义中的参数
- 实参:全称实际参数,方法调用中的参数
3,方法定义技巧
- 我要干嘛? 方法体
- 我干这件事需要什么才能完成? 形参
4,方法的注意事项
- 方法不调用就不执行(程序执行自动调用main方法)
- 方法与方法之间是平级关系,不能互相嵌套
- 方法的编写顺序和执行顺序无关
- 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return(表示结束方法)语句不写。如果要编写return,后面不能跟具体的数据。
- return语句下面不能写代码,因为永远执行不到,属于无效代码。
5,return关键字
- 方法没有返回值:可以省略不写。如果书写,表示结束方法
- 方法有返回值:必须写。表示结束方法和返回结果
3,方法的重载
1,方法重载的定义
- 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。
- 每个方法具有不同参数类型或参数个数,这些同名的方法,就构成了重载关系
- 简单记:在同一个类中,方法名相同,参数不同(个数,类型,顺序不同)的方法。与返回值无关。
2,方法重载的好处
- 定义方法可以不用那么多单词了
- 调用方法不用太麻烦了
4,方法的内存
1,方法调用的基本内存原理
1,方法调用的基本内存原理
注:方法进栈出栈遵循先进后出原则
2,方法传递基本数据类型和引用数据类型的内存原理
注:当变量里的值存储的不是真实的数据而是其他空间的地址值时,那这个变量就称作引用数据类型。引用:使用其他空间地址值。
- 基本数据类型:数据值是存储在自己的空间中。
- 特点:赋值给其他变量,也是赋的真实值。
- 引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。
- 特点:赋值给其他变量,副的是地址值。
2,方法传递基本数据类型的内存原理
注:传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。
3,方法传递引用数据类型的内存原理
注:传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值。