您当前的位置: 首页 > 

import java.lx

暂无认证

  • 3浏览

    0关注

    81博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

方法的参数传递

import java.lx 发布时间:2022-07-29 20:28:37 ,浏览量:3

方法传参

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

  • 代码实现


public class Test {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用change前:"+number);
        change(number);
        System.out.println("调用change后:"+number);
    }
    public  static  void change(int number1){
        number1 = 200;
        return number1;
    }
}

代码解析

 public static void main(String[] args) {    //把main方法加载到栈内存
    int number = 100;                        //在main方法中加载一个 int number   100;
    System.out.println("调用change前:"+number); //将number的值输出
    change(number);                         //调用change方法:把change方法加载到栈内存
    public  static  void change(int number1){ //在chenge方法中,加载一个 int nember1  100 
                                    //  number1 是形参,它的初始值是实参number给它的。实参number的初始值:100
        number1 = 200;              //   number1的值从100 变为了200
        return number1;             //  将number1的值返回到main方法中,暂时main方法中没人接收
        }                           //chenge方法结束 int number1 = 200 和change方法一起随着changg方法的结束而在栈内存中消失
     System.out.println("调用change后:"+number);//再次输出number的值,这次number的值在main方法中,值为100
  }                                 //main方法结束,int number = 100 和main方法一起随着mian方法的结束在栈内存中消失
  • 对于引用类型的参数,形式参数的改变,影响实际参数的值。

  • 代码实现


public class Test {
    public static void main(String[] args) {
        int[] arr = {10,20,30};
        System.out.println("调用change前:"+arr[1]);
        change(arr);
        System.out.println("调用change后:"+arr[1]);
    }
    public  static  void change(int[] arr1){
        arr1[1] = 200;
    }
}

代码分析

public static void main(String[] args) {     //把main方法加载到栈内存
     int[] arr = {10,20,30};    //int[] arr 出现在栈内存main方法中   {10,20,30}会出现在堆内存里面,形成2行2列的表格
                                                                //表格上方会出现地址值001 
                                //会将地址值001 赋值给栈内存的 arr
     System.out.println("调用change前:"+arr[1]);//输出arr[1]的值--->20
     change(arr);               //调用change方法:把change方法加载到栈内存
      public  static  void change(int[] arr1){在chenge方法中,加载一个 int[] arr1  001 
                                    //  arr1是arr 传递过来的 也是堆内存中地址值是001的数据
          arr1[1] = 200;        //通过arr1--->001--->索引1--->20   ===>20变成200 堆内存的数据发生改变
       }            //chenge方法结束 int number1  001 和change方法一起随着changg方法的结束而在栈内存中消失 
     System.out.println("调用change后:"+arr[1]);//再次输出arr[1]的值,堆内存的数据发生了改变 但是没有消失
       }                        //main方法结束,int[] arr  001 和main方法一起随着mian方法的结束在栈内存中消失

基本数据类型和引用数据类型数据在传参时区别 

基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用 

 

综合案例

        使用带参方法实现学员信息管理

                增加学员姓名

                在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功 

package cn.bdqn.demo04;

public class Student {
	/*
	 * 增加学员姓名 在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功
	 */

	// 定义Student类属性
	String name;
	int age;

	// 定义方式实现上述需求:在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功
	public static boolean searchStudent(Student[] students, int startIndex,
			int endIndex, String name) {
		int count = 0;
		for (int i = startIndex; i             
关注
打赏
1663829786
查看更多评论
0.0347s