方法参数传递
1.基本类型和引用类型作为方法参数传递问题
参数传递概述
可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。
这种传递方式,我们称为参数传递。
在这里,定义方法时,参数列表中的变量,我们称为形式参数
调用方法时,传入给方法的数值,我们称为实际参数
参数是基本类型及图解
形式参数的改变不影响实际参数。
public class Demo01Args {
public static void main(String[] args) {
// 定义变量
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
change(a, b);
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
}
public static void change(int a, int b) { // a=10,b=20
System.out.println("a:" + a + ",b:" + b);// a:10,b:20
a = b; // a=20;
b = a + b;// b=40;
System.out.println("a:" + a + ",b:" + b);// a:20,b:40
}
}
参数是引用类型及图解
public class Demo02Args {
public static void main(String[] args) {
// 定义数组
int[] arr = { 1, 2, 3, 4, 5 };
// 遍历数组
for (int x = 0; x<arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
change(arr);
for (int x = 0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}
public static void change(int[] arr) {
for (int x = 0; x<arr.length; x++) {
// 如果元素是偶数,值就变为以前的2倍
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}
}
练习:
1.定义方法,可以接收一个整型一维数组,在方法的内部完成数组遍历
public class Demo01MethodTest {
public static void main(String[] args) {
// 定义数组
int[] arr = { 11, 22, 33, 44, 55 };
printArray1(arr);
printArray2(arr);
}
/*
* 按照以下格式遍历数组
* [元素1, 元素2, 元素3, ...]
*/
public static void printArray2(int[] arr) {
System.out.print("[");
for(int x=0; x<arr.length; x++){
if(x==arr.length-1){
System.out.println(arr[x]+"]");
}else {
System.out.print(arr[x]+", ");
}
}
}
/*
* 定义遍历数组的方法
* 两个明确:
* 返回值类型:void
* 参数列表:int[] arr
*/
public static void printArray1(int[] arr) {
for(int x=0; x<arr.length; x++){
System.out.println(arr[x]);
}
}
}
2.定义方法,可以接收一个整型的一维数组,在方法的内部获取数组的最大值并返回
public class Demo02MethodTest {
public static void main(String[] args) {
// 定义数组
int[] arr = { 34, 67, 10, 28, 59 };
//调用获取数组中的最大值的方法
int max = getMax(arr);
System.out.println("max:"+max);
//调用获取数组中的最小值的方法
int min = getMin(arr);
System.out.println("min:"+min);
}
//获取数组中的最小值的方法
public static int getMin(int[] arr) {
int min = arr[0];
for(int i=1; i<arr.length; i++) {
if(arr[i] <min) {
min = arr[i];
}
}
return min;
}
/*
* 获取数组中的最大值的方法
* 两个明确:
* 返回值类型:int
* 参数列表:int[] arr
*/
public static int getMax(int[] arr) {
int max = arr[0];
for(int i=1; i<arr.length; i++) {
if(arr[i] >max) {
max = arr[i];
}
}
return max;
}
}
3.定义方法,可以接收一个整型数组,实现求这个数组元素的和 ,并把这个和返回(一维数组,二维数组)
public class Demo03MethodTest {
public static void main(String[] args) {
// 定义数组
int[] arr = { 1, 2, 3, 4, 5 };
//调用数组元素求和方法
int sum = sum(arr);
System.out.println("sum:"+sum);
}
/*
* 定义数组元素求和方法
* 两个明确:
* 返回值类型:int
* 参数列表:int[] arr
*/
public static int sum(int[] arr) {
int sum = 0;
for(int i=0; i<arr.length; i++) {
sum += arr[i];
}
return sum;
}
}