<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">首先看段代码:</span>
import java.awt.Point;
class RefTester{
public static void main(String[] arguments){
Point pt1,pt2;
pt1 = new Point(100,100);
pt2 = pt1;
pt1.x=200;
pt1.y=200;
System.out.println("Point1:" + pt1.x + "," + pt1.y);
System.out.println("Point2:" + pt2.x + "," + pt2.y);
}
}
输出:
Point1:200,200
Point2:200,200
为什么Point2输出也是200,200),那是因为在'pt2 = pt1'这里,pt2引用了pt1的对象,它们都是引用的同一个对象,在pt2引用一个新的对象之前,它都是和pt1引用的同一个对象,所以输出始终的一样。
再看代码:
Person person = new Person("张三"); 这里person是指向创建对象的引用,张三是对象,为什么?
Person person;
person = new Person("张三");
这里的两行代码与上面的完全一样,只有在person是引用的时候,它才能通过new创建新的对象 "张三"