我一直以为 
Date birthday=new Date();
是构造了一个对象 
其实不是 birthday是一个对象变量
书上说 
new Date()是构造一个Date对象 
如果 名字不叫Date的话 该怎么办呢 
该怎么构造对象呢 

解决方案 »

  1.   

    ……我好像听懂了。
    birthday不是一个对象,而是一个对象的句柄,学名叫做Refrence,作用相当于一把门把手,或者是一个门牌号码。
    new Date() 创建了一个对象,然后把这个对象的句柄传给了birthday,然后你可以通过birthday来操作刚才创建的那个对象。
    就算是你把birthday给赋值为null.刚才创建的对象也不会消失。因为你并没有销毁对象,你只是拆了一个门把手而已。懂了么?
      

  2.   

    Date birthday=new Date();
    这个要理解的话,可以分3部分
    1.Date birthday 定义一个Date类型的引用(变量),引用的名字是birthday
    2.new Date();创建一个Date()类型的对象
    3.=  :将2.创建的对象的地址赋予1.创建的变量,
      或者说,将1.创建的引用指向2.创建的对象以上的说法不一定严谨,但是可以这样理解它
      

  3.   

    goodboy1881(积木) 真是高人,不是因为正确理解了引用跟对象的概念,是因为看明白楼主的意思,有时程序员就需要有很强的理解能力。
      

  4.   

    就像Thinking in java 中所说的就像遥控器和电视的关系,呵呵!!
      

  5.   

    goodboy1881(积木)  和 liang8305(七分之雨后) 都解释的很好new就是在内存中生成一个对象 然后把这个对象的地址付给 birthday 变量,使用birthday变量实际上就是使用它指向的对象
      

  6.   

    可以这样来理解变量:变量就是内存中一块命名了的空间这样理解对吗 ?
    Date birthday=new Date();
    其中 birthday是一个对象变量而不是对象 
    其实也就是对对象的一个引用和关联  
    它叫对象变量 是我在core java中看到的  
    当然是中文版的 .