class ReferencesTest{
    public static void mian(string[] args){
      Point pt1,pt2;
      pr2=pt1;
      pt1.x=200;
      pt1.y=200;
   system.out.println("Point1n:"+pt1.x+","+pt1.y};
   system.out.println("pointln:"+pt2.x+","+pt2.y);
   }
 }
   关于引用问题还是有点不明白,来人根据这个小程序指点指点,谢谢了!!

解决方案 »

  1.   

    引用就是把pt1的句柄给pt2.
    此时..pt2和pt1指向的应该是同一内存地址.
      

  2.   

    import java.awt.Point;
    class ReferencesTest{
        public static void main(String[] args){
          Point pt1,pt2;
          pt1=new Point();//只创建了一个对象
          pt2=pt1;//使pt2也指向那个刚刚创建的对象,即pt1 pt2引用的是一个对象
          pt1.x=200;
          pt1.y=200;
          
       System.out.println("Point1n:"+pt1.x+","+pt1.y);
       System.out.println("pointln:"+pt2.x+","+pt2.y);
       }
     }
      

  3.   

    你得先创建一个对象啊。
    不然会出现空指针异常的。  class ReferencesTest{ 
        public static void mian(string[] args){ 
          Point pt1=new Point(),pt2; 
          pr2=pt1; 
          pt1.x=200; 
          pt1.y=200; 
       system.out.println("Point1n:"+pt1.x+","+pt1.y}; 
       system.out.println("pointln:"+pt2.x+","+pt2.y); 
       } 
     }
      

  4.   

    楼主,这篇文章我想能够解决你的问题,你自己看看.
    http://dev.csdn.net/author/beepbug/f5c70b05579f46d4996ce9da4f75dbc0.html
      

  5.   

    首先你这个程序p1和p2没有实力化,运行会报空指针异常。
    如果实力化后,例如这样
    Point p1 = new Point();//1
    Point p2 = new Point();//2
    p1=p2;//3p1.x=200;//4
    p1.y=200;//5
    在第一行,实力化一个对象Point()放在内存的堆中。然后栈中的p1指向了这个内存中的Point对象
    第二行,同样实力化一个对象Point()放在内存的堆中。然后栈中的p2指向了这个内存中的Point对象
    第三行的时候p1和p2共同指向了第一行的那个Point对象的内存地址。这个时候p2原来所指向的那个Point对象过段时间会被JVM垃圾回收器回收
    第四行和第五行为p1的x和y属性赋值,由于p1和p2这个时候指向了同一个内存所以此时p2.x=200;同样p2.y=200