package javaTest;
public class ArrayTest{
public static void main(String[] args){
Person[] students;
students = new Person[2];
Person zhang = new Person();
zhang.age = 15;
zhang.height = 158;
Person lee = new Person();
lee.age = 15;
lee.height = 161;
students[0] = zhang;
students[1] = lee;
lee.info();
students[1].info();
}
}
最终结果
我的年龄是:15,我的身高是:161.0
我的年龄是:15,我的身高是:161.0
执行Person[] students;代码时,这行代码仅仅在栈内存定义了一个引用变量 就是一个指针,
这个指针并没指向任何有效的内存区 在栈内存中定义了一个students变量,他仅仅是一个引
用并未指向任何有效内存。直到初始值:null,这意味着依然不能直接使用student数组元素
两个对象指向同一个内存区 所以修改zhang变量所指向的Person实例的Field,所修改的其实
是同一个内存区,所以必然互相影响。同理,Lee和students[1]也是引用同一个Person对象,
具有相同的效果。
|
|