Java-方法_参数传递

一、参数传递

1.分类

  • 基本类型
  • 引用类型

2.注意

  • 一个方法可以有0或多个参数,使用,隔开
  • 参数类型可以是基本数据类型/引用数据类型

2021年11月5日19:30:26 学习更新

3.可变参数

同一个类中多个同名同功能参数个数不同的方法,封装成一个方法

  • 可变参数可以是0个或多个
  • 可变参数的实参可以传入数组
  • 可变参数的本质就是数组
  • 普通参数+可变参数,可变参数必须放后面
  • 形参列表只能有一个可变参数

public static void test(String s,int...nums){
	int nums = 0;
	// nums为一个数组
	for(int i=0;i<nums.length;i++){
		sum += nums[i];
	}
}

二、参数传递_基本类型

1.代码

package com.nsys;

/**
 * @Author: nsys
 * @Date: 2021-10-05 12:10
 * @Description: 方法参数传递_基本类型
 */
public class ArrayDemo8 {
    public static void main(String[] args) {
        // 初始化number值为100
        int number = 100;
        System.out.println("调用change方法前:" + number);
        // 将number=100传入change方法
        change(number);
        System.out.println("调用change方法后:" + number);
        //调用change方法前:100
        //调用change方法后:100

    }
    // change方法,将200赋值给形参number
    public static void change(int number){
        number = 200;
    }
}

2.结论

对于基本数据类型的参数,形参的改变不影响实参的值

image

image


三、参数传递_引用类型

1.代码

package com.nsys;

/**
 * @Author: nsys
 * @Date: 2021-10-05 12:20
 * @Description: 方法参数传递_引用类型
 */
public class ArrayDemo9 {
    public static void main(String[] args) {
        // 初始化一个静态数组
        int[] arr = {1, 2, 3};
        System.out.println("调用change方法前:" + arr[0]);
        // 将数组arr,传入change方法
        change(arr);
        System.out.println("调用change方法后:" + arr[0]);
        //调用change方法前:1
        //调用change方法后:100

    }

    // change方法,将100赋值给形参number
    public static void change(int[] arr) {
        arr[0] = 100;
    }
}

2.结论

  • 对于引用类型的参数,形参的改变,影响实参的值

image


四、代码

1.数组遍历

package com.nsys;

/**
 * @Author: nsys
 * @Date: 2021-10-05 14:33
 * @Description: 设计一个方法用于数组遍历,要求遍历的结果是在一行上的,如[11,22,33]
 */
public class MethodDemo4 {
    public static void main(String[] args) {
        // 静态初始化数组
        int[] arrTest = {123,122,11,44,22,55,11};
        arrayResult(arrTest);

    }
    public static void arrayResult(int[] arr){
        for (int i=0;i<arr.length;i++){
            if (i == 0){
                System.out.print("[" + arr[i]+",");
            }else if (i == arr.length-1){
                System.out.print(arr[i] + "]");
            }else {
                System.out.print(arr[i] + ",");
            }
        }
    }
}

2.数组最值

package com.nsys;

/**
 * @Author: nsys
 * @Date: 2021-10-05 14:51
 * @Description: 方法_数组最值
 */
public class MethodDemo5 {
    public static void main(String[] args) {
        // 静态初始化数组
        int[] arrTest = {1,2,3,4,5,6,100,7};
        arrayMax(arrTest);
    }
    
    /*
    *   创建arrayMax方法,获取数组最大值
    *   返回值类型:因为不需要有返回值,所以用void
    *   参数:传递的参数类型是int类型的数组,所以用int[]
    * */
    public static void arrayMax(int[] arr){
        int arrMax = arr[0];
        for (int i=1;i < arr.length; i++){
            if (arr[i] >arrMax){
                arrMax = arr[i];
            }
        }
        System.out.println(arrMax);
    }
}

五、思考

image

image

posted @ 2021-10-05 12:30  难删亦删  阅读(59)  评论(0)    收藏  举报