函数调用传参数
调用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
}
}