概念:实现特定功能的一段代码,可反复使用
1.方法的定义
定义位置:类的内部,与其他函数并列(main函数)。
方法的定义格式如下:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){
执行语句
………
return 返回值;
}
对于上面的语法格式中具体说明如下:
- 修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等。
- 返回值类型:用于限定方法返回值的数据类型
- 参数类型:用于限定调用方法时传入参数的数据类型
- 参数名:是一个变量,用于接收调用方法时传入的数据
- return关键字:用于结束方法以及返回方法指定类型的值
- 返回值:被return语句返回的值,该值会返回给调用者
需要特别注意的是,方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,它用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。
案例
public class MethodDemo01 {
public static void main(String[] args) {
int area = getArea(3, 5); // 调用 getArea方法
System.out.println(" The area is " + area);
}
// 下面定义了一个求矩形面积的方法,接收两个参数,其中x为高,y为宽
public static int getArea(int x, int y) {
int temp = x * y; // 使用变量temp记住运算结果
return temp; // 将变量temp的值返回
}
}
2.方法调用图解
通过一个图例演示getArea()方法的整个调用过程,如下图所示。
从上图中可以看出,在程序运行期间,参数x和y相当于在内存中定义的两个变量。当调用getArea()方法时,传入的参数3和5分别赋值给变量x和y,并将x*y的结果通过return语句返回,整个方法的调用过程结束,变量x和y被释放。
3.方法的参数
规定:形参和实参的数据类型必须一样
- 方法定义时的参数声明。【形参】
- 方法调用时传入的参数。【实参】
- 方法定义时,可以放任意多个参数。
- 形参和实参的个数一定要一样。
参数的个数,是根据你实际的业务需求来确定的。并不是定义的时候一定要有或者要有多少个
4.方法的返回值
- void:方法不需要返回值
- void/基本数据类型/引用数据类型
- 使用return关键字,进行方法值的返回; 方法为void时,return代表结束本次方法调用。
- 调用方法时,使用对应类型,接受方法的返回值
- 方法所有分支,必须都有对应的返回值
5.方法的重载
定义:一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同
注意事项:
- 重载方法参数必须不同:
-
参数个数不同,如method(int x)与method(int x,int y)不同
-
参数类型不同,如method(int x)与method(double x)不同g
-
参数顺序不同,如method(int x,double y)与method(double x,int y)不同
-
- 重载只与方法名与参数类型相关与返回值无关
- 如void method(int x)与int method(int y)不是方法重载,不能同时存在
- 重载与具体的变量标识符无关
- 如method(int x)与method(int y)不是方法重载,不能同时存在
6.参数传递图解与结论
通过上面的两段程序可以得出如下结论:
- 当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响
- 当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响