1.1 在java中,变量分为简单变量和对象变量,那么很简单:
简单变量:存储值;
对象变量:存储引用(存储对象地址)。
1.2 java中的参数传递规则:
①简单类型的参数传值:
package;
public class TestReference{
public static void main(String[]args){
int a = 10;
int b = a;
b++;
System.out.println(a);
}
}
该例中,整型a为简单变量,直接存值,将a的值指向b,改变b的值后,a的值并没有发生变化,说明系统为a与b各自分配一个空间后,直接存储各自的值。
②对象类型的参数传引用,实参和形参指向同一对象。例如:
package;
public class TestReference{
public static void main(String[]args){
Student s1 = new Student();
Student s2 = s1;
s2.age++;
System.out.println(s1.age);
}
}
class Student{
int age = 20;
}
创建Student对象,再创建Student对象2,并将s1赋予s2后,实际上是s1与s2指向同一Student对象, 任何一方作出改变,则引用对象发生变化,因此s1.age = 21;
1.3 java中容易混淆的地方,该例中,只是将m的值10传递给形参a,在定义域changeInt()中,形参改变后,不会影响m的值大小。
package;
public class TestReference{
public static void main(String[]args){
int m = 10;
changInt(m);
System.out.println(m);//输出10
}
static int changInt(int a){
a++;
return a;
}
} |
|