java方法传参机制

 

核心思想:

  1.  java传参只能按值调用,方法不可能修改基本数据类型的参数
  2. 方法可以改变对象参数的状态(即可以改变对象的属性,但是不可能改变对象的引用)
  3. 方法不可能让一个对象参数引用一个新的对象
/**
 * 8.21
 * java方法传参机制
 * 核心思想:
 * 1.java传参只能按值调用,方法不可能修改基本数据类型的参数
 * 2.方法可以改变对象参数的状态(即可以改变对象的属性,但是不可能改变对象的引用)
 * 3.方法不可能让一个对象参数引用一个新的对象
 *
 * 本题与装箱拆箱无关
 */

public class Test1 {

    public static void main(String[] args) {
        int per = 10;
        /**
         *  Integer var1 = new Integer(1)
         *  等同于 Integer var1 = 1
         *  这里是手动装箱,将基本类型变成包装类
         */
        Integer var1 = new Integer(1);
        Integer var2 = var1;
        /**
         * doSomething方法引用了对象参数var2,但是不可能让var2去引用一个新的对象
         * 因此var2 = 1 = var1
         */
        doSomething(var2);
       
        System.out.println(var1.intValue());//intValue()是手动拆箱,打印结果:1
        System.out.println(var1==var2);//打印结果:true

        new Test1().tripleValue(per);
        System.out.println(per);//结果仍为10,方法不会改变基本数据类型的值

    }

    public static void doSomething(Integer integer){
        /**
         * integer初始化为var2的一个副本
         * 之后integer指向一个新的对象 integer = 2
         * 方法结束后,integer就不再使用
         * var2仍然指向原来的地址
         */
        integer = new Integer(2);
    }

    public void tripleValue(int per){
        /**
         * 这里的等号左边的per只是参数值的一个副本,并不是原来的参数变量,
         * 方法结束之后就不再使用
         */
        per = per * 3;
    }
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值