Java基础:方法的参数传递和带返回值的方法
方法的参数传递
值传递:当参数类型为基本数据类型时,调用者仅仅把实际参数的值赋给形式参数,形式参数的改变不会影响到实际参数
引用传递:当参数类型为引用数据类型时,调用者会把实参的地址给到形参,形式参数的改变影响到实参
带返回值的方法
定义格式:
public static 数据类型 方法名(参数列表) {
方法体;
return语句;
}
带返回值的方法具有3个核心要素
数据类型:即函数返回值类型,可以是基本数据类型、引用类型等,自己写的类也可将类名作为返回值类型
参数列表:即形式参数,从调用者获取的若干个数据,多个参数之间逗号隔开。作用是将数据“带”进方法
return语句:格式:return 数据 作用是终止函数的执行,将方法执行结果从方法中“带”出去作为函数返回值。return后的数据类型与定义方法的数据类型相同。void类型的方法中return后面没有数据,一般省略return语句
Notice:
带返回值的方法,其方法体必须包含return语句,void类型方法虽然没有返回值,但可以有return语句,建议将这个return语句加到if语句里面,用于某条件下提前结束函数执行。
调用格式
方法名(实际参数)
Notice:
实际参数应与形式参数的个数、数据类型对应相同,参数的顺序不能颠倒
带返回值方法的调用应该有变量用于接收,或可以当作常量参与运算、输出、作为其它函数调用的参数
练习:
1. 定义一个方法,返回矩形的面积(假定长和宽都是整数)
分析:
矩形面积=长度 * 宽度
为了确保方法的复用性,长和宽可作为方法的参数,面积作为返回值
public class E { public static int Rect(int length, int width) { //算术表达式可以当作函数返回值 return length * width; } public static void main(String[] args) { //在主方法中调用进行测试 System.out.println(Rect(3, 4)); } }
通过上面的练习我们发现通过长和宽的计算我们从方法中返回了一个数据,如果想从方法中拿到多个数据,则需要数组作为方法返回值了。本Reno也是第一次听说方法的返回值类型可以是数组。
2. 定义一个方法,返回一个整型数组的倒序
分析:
定义一个返回值是整型数组的方法,形式参数:一个整型数组
在方法体中定义一个新整型数组并动态初始化,长度与形式参数的数组长度一致
正序遍历新数组,同时倒序访问形参数组的元素,将其赋值给新数组的元素
新数组作为返回值
public class E2 { //定义一个方法,返回类型:整型数组;参数:整型数组 public static int[] mirror(int[] arr) { //定义一个整型数组并动态初始化,存放目标数组 int[] m = new int[arr.length]; //遍历数组,将参数中的数组倒序赋值给目标数组 for (int i = 0; i < m.length; i++) { m[i] = arr[arr.length - 1 - i]; } //将目标数组作为返回值 return m; } public static void main(String[] args) { int arr[] = {12, 22, 31, 13, 15, 28, 14, 32}; //定义一个数组存放调用方法所得的倒序数组 int arr2[] = mirror2(arr); //将倒序数组打印 for (int i = 0; i < arr2.length; i++) { System.out.print(arr2[i] + " "); } } }