• 方法参数传递时的值传递和引用传递


    1. 再论数据类型

    基本数据类型:char,byte,short,int,long,float,double,boolean

    应用数据类型: 数组,类,String

    基本数据类型的变量可以直接赋值: int age = 39;double price = 34.5;

    引用数据类型的变量不可以直接赋值:

    所有的引用数据类型在使用的时候必须 1:声明 2:分配空间  3:赋值

    1声明

    Int[] nums ;

    Student stu

    2分配空间 使用new 分配空间

    Nums = new int[3];

    Stu = new Student();

    3赋值

    Nums[0] = 22;

    Nums[1] = 23;

    Stu.name= “赵丽丽”;

    Stu.age = 23;

     

    2.基本数据类型作为方法的参数

               方法的定义

                    

    1. //基本数据类型作为方法的参数
    2. public void changeNum(int num){
    3. System.out.println("修改修改前方法中的num:"+num);
    4. num = 20;
    5. System.out.println("修改后方法中的num:"+num);
    6. }

                 方法的调用

                    

    1. public static void main(String[] args) {
    2. //创建第一个老师() 姓名是:玛丽丽
    3. Teacher t1 = new Teacher();
    4. t1.name="玛丽丽";
    5. t1.age= 22;
    6. //使用t1对象调用方法
    7. System.out.println("=====================");
    8. int shuzi = 10;
    9. t1.changeNum(shuzi);
    10. System.out.println("调用完毕后的结果:"+ shuzi );

            运行的结果

                    

     

            分析原因

     

    结论:在基本数据类型作为方法参数的时候,形参的任何改变不会影响实参的结果

    3.引用数据类型作为方法的参数

    方法的定义

    1. //应用数据类型作为参数
    2. public void chageNum(int[] nums){
    3. System.out.println("修改修改前方法中的nums:"+nums[0]);
    4. nums[0] = 20;
    5. System.out.println("修改后方法中的nums:"+nums[0]);
    6. }

    方法的调用  

    1. public static void main(String[] args) {
    2. //创建第一个老师() 姓名是:玛丽丽
    3. Teacher t1 = new Teacher();
    4. t1.name="玛丽丽";
    5. t1.age= 22;
    6. //使用t1对象调用方法(应用数据类型的参数)
    7. System.out.println("=====================");
    8. int[] temp_nums = {1,2,3};
    9. t1.chageNum(temp_nums);
    10. System.out.println("调用完毕后的结果:"+ temp_nums[0] );

            输出结果

            

     

            分析

     

    结论:在引用数据类型作为方法参数的时候,形参的任何改变会影响实参的结果(注意如果在方法中对于形参重新分配了空间如 nums  = new int[3];person=new Person())则形参的变化不会影响到实参的值)

  • 相关阅读:
    【Overload游戏引擎分析】编辑器对象鼠标拾取原理
    G5-G12年级的英语阅读写作分级标准
    【设计模式】适配器模式
    opencv入门建议
    AI绘图之基于文本/图片制图
    【全开源】JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码
    C及C++标准与QT版本介绍
    操作系统02_进程管理_同步互斥信号量_PV操作_死锁---软考高级系统架构师007
    假脱机技术(SPOOLING)
    JAVA设计模式-模板模式
  • 原文地址:https://blog.csdn.net/weixin_44793200/article/details/126221031