day13
1.引用数据类型进行赋值
----总结:多个引用名称指向同一个对象
当一个引用名称改变对象中的值,
则另一个引用名称在访问属性时的值也会发生改变
class Student{
//属性
String name;
int age;
//构造方法
public Student(){
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
}
//编写学生测试类
class StudentTest{
public static void main(String[] args){
//实例化学生
Student s=new Student("张三",19);
Student s2;
s2=s;//s和s2共用同一个地址,也就是说 s和s2引用名称指向同一个对象
System.out.println("s2.name="+s2.name);//张三
s2.name="李四";
System.out.println("s2.name="+s2.name);// 李四
System.out.println("s.name="+s.name);// 李四
}
}
2.引用数据类型作为参数传递
---总结:当引用数据类型作为参数进行传递时,
传递的是地址,也就是说共用同一个地址;
当一个方法中地址所对应的属性发生改变,
则另一个地址中所对应的属性值也会发生改变。
//编写学生测试类
class StudentTest{
public static void change(Student s){
System.out.println(s.name);
System.out.println(s.age);
s.name="无名氏";
}
public static void main(String[] args){
//实例化学生
Student s=new Student("张三",19);
Student s2;
s2=s;//s和s2共用同一个地址,也就是说 s和s2引用名称指向同一个对象
System.out.println("s2.name="+s2.name);//张三
s2.name="李四";
System.out.println("s2.name="+s2.name);// 李四
System.out.println("s.name="+s.name);// 李四
--------------------
Student s=new Student("李四",23);
System.out.println(s.name);//李四
System.out.println(s.age);//23
change(s);
System.out.println("s.name="+s.name);//无名氏
System.out.println("s.age="+s.age);//23
}
}