方法的定义
将重复高使用的代码封装为方法使用,提高程序的开发效率,提高代码书写质量
package com.itheima.define;
public class MethodsDemo1 {
public static void main(String[] args){
int rs=sum(10,20);
System.out.println(rs);
}
public static int sum(int a,int b){
int c = a + b;
return c;
}
}
- 方法定义写在class类中,与main方法平级
- 声明方法类型,并返回对应类型的返回值
- 方法可以选择是否声明形参,当声明多个形参时,用逗号隔开,不能设置默认值
- 当函数不需要返回数据时,需要将函数声明为void类型
方法的执行过程
- 将class文件在方法区中执行,将方法放入栈内存中执行
- 栈内存的执行方式是先进后出,将main方法放入后,将sum方法放入
- 执行main方法,当执行到sum调用时,将新参传入sum方法进行方法的执行,当方法执行结束后,将返回值返回给main的调用变量上,清除sum方法
- 继续执行main方法,当运行到调用方法,按照以上步骤运行,直到main方法的执行结束,清除main方法
方法的参数传递
- 形参 声明方法时的临时存储变量
- 实参 传递给形参的实际运算值
- 基本数据类型参数的传递是值传递,传递的是实参的副本,被调用的方法中不会改变实参的值
- 引用数据类型参数的传递是引用地址的传递,传递的是实参的地址,被调用的方法中会改变实参的值
方法的重载
一个类中,出现多个相同方法名,方法的形参不同,说明这个方法名的方法进行了重载 形参的个数、类型、顺序不同,不关心形参名称
package com.itheima.overload;
public class MethodOverloadDomo1 {
public static void main(String[] args) {
}
public static void test() {
System.out.println("test1");
}
public static void test(int a) {
System.out.println("test2" + a);
}
void test(double a) {
}
void test(double a, int b) {
}
void test(int b, double a) {
}
int test(int a, int b) {
return a + b;
}
}
``