Java基础 学习笔记18

函数调用传参数


调用add方法时,将i传进去。
实际上是将i变量中保存值10复制了一份传给了add方法

package chapter3.Args;

public class ArgsTest01 {
    public static void main(String[] args) {
        int i = 10;
        //调用add方法时,将i传进去。
        // 实际上是将i变量中保存值10复制了一份传给了add方法
        add(i);
        System.out.println("main ----》" + i); //10
    }

    public static void add(int i){ //方法的形参是局部变量
        i++;
        System.out.println("add ----》" + i); //11
    }
}

调用函数必压栈

在这里插入图片描述


两个例子看起来不一样,但是本质是一样的
这里 u 中存储的是变量的 地址
上面 i 中存储的 是 值int 10

package chapter3.oop04;

public class ArgsTest02 {
    public static void main(String[] args) {
        User u = new User(); //u保存的是User的内存地址
        u.age = 10;
        //u是怎么传递过去的,实际上和i原理相同,都是将变量中保存的值传过去
        //只不过这里的u变量中保存的值比较特殊,是一个对象的内存地址
        add(u);
        System.out.println("main ---> " + u.age);//11

    }

    public static void add(User u){//u是一个引用
        u.age++;
        System.out.println("add --->" + u.age);//11
    }

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值