设有类Student,有程序
public class Test1 {
public static void main(String[] args) {
Student stu1 = new Student(1, "wang");
Student stu2 = stu1; //main test point
stu1.stu_name = "pang";
System.out.println("stu1:" + stu1.stu_id + ", " + stu1.stu_name);
System.out.println("stu2:" + stu2.stu_id + ", " + stu2.stu_name);
}
}
输出为:
stu1:1, pang
stu2:1, pang
即:引用赋值的对象,当用来赋值的源对象改变之后,引用赋值的对象也会改变(因为它们指向的是同一个对象)。同样修改引用赋值的对象,用来赋值的源对象也会改变。
另外,java对简单类型(整型, char, 浮点型, boolean)是按值传递的。对象是按引用传递的,因此,当把对象引用传递给一个方法时,接收它的参数将引用于参数所引用的对象相同的对象。
如程序:
public class Test2 {
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
Student stu1 = new Student(1, "wang");
Student stu2 = stu1; //main test point
stu2.setStudent(2,"pang");
System.out.println("stu1:" + stu1.stu_id + ", " + stu1.stu_name);
System.out.println("stu2:" + stu2.stu_id + ", " + stu2.stu_name);
}
}
输出为:
stu1:2, pang
stu2:2, pang