参数传递
1、这个过程就 是赋值的过程,参数传递和“赋值规则”完全相同,只不过参数传递在代码上看不见“=”运 算符。
2、java方法中的参数传递永远传递的都是变量里面的那个值,有的值是字面值,有的值是另一个java对象中的内存地址。
5、参数的传递就是值的传递。
User u=new User();
User u2=new User();
u2=u,将u里面的内存地址传给U2,他们指向的是堆内存中的同一个java对象。
例子:
/**
* 1、首先s里面存放的是STUDENT对象的地址
* 2、 add(s);s1=s所以现在s1里面存放的就是Student对象的地址
* 总结:参数传递传递的只是值,有的参数传递的是字面值,有的参数传递的是对象的地址。
*/
public class Test03 {
public static void main(String[] args) {
Student s=new Student(20);
add(s);
System.out.println("2:"+s.no);
}
public static void add(Student s1){
s1.no++;
System.out.println("1:"+s1.no);
}
}
class Student{
int no;
public Student() {
}
public Student(int no) {
this.no = no;
}
}
运行结果:
1;21
2:21
例子2:
public class Test04 {
public static void main(String[] args) {
int i=10;
dosum(i);
System.out.println("2:"+i);
}
public static void dosum(int a){
a++;
System.out.println("1:"+a);
}
}
运行结果:
1:11
2:10