谁能帮我解释一下下面两道题的参数传递过程

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:48:12
public class ValueReference {
int a=10;
public static void main(String[] args) {
ValueReference aValue=new ValueReference();
aValue.print();
}
public void print()
{
int b=a;
System.out.println("Before changed value a="+a+",b="+b);
a=30;
System.out.println("After changed value a="+a+",b="+b);
}
}

public class Student {
String strName;
public static void main(String[] args) {
Student aStudent=new Student();
aStudent.setStudentName("张三");
System.out.println("aStudent name is "+aStudent.getStudentName());
Student bStudent=aStudent;
bStudent.setStudentName("李四");
System.out.println("bStudent name is "+bStudent.getStudentName());
String name=aStudent.getStudentName();
System.out.println("

1.基本类型赋值。 b=a=10;之后a=30但是并不改变b的值,所以b还是10;

2.引用赋值。首先引用astudent = 张三,这是没有疑问的 bstudent=astudent 也就是说bstu..的引用指向了astu...的引用,这两个指的是一个东西,那么bstudent指的改变了,astudent也改变了。所以此时astudent&&bstudent = 李四~

不知道你明白没有……

两道题的道理是一样的,只不过第一道是int类型,也就是基本类型,可以直接改变和读取整数的值,第二题是String,也就是引用类型,要通过调用方法来改变和读取String的值。
其实这题就是先将一个支赋给变量A,再将A的值赋给B,将A,B都打印出来,再给A赋一个新的值,B的值不变,再将A,B都打印出来。
这样,B的值没有改变过,而且和一开始赋给A的值相等