在,马老师的一个视频里讲到“必须使用new关键字创建对象”但又看到老师将一个题目是用到“ private Point o;”这里怎么直接复用类Point 名字叫o,没有用到new关键字       小弟是初学者,请大家帮一下满,谢谢了!

解决方案 »

  1.   

    前面有没有声明o 为Point类型的声明?
      

  2.   

    这里只是声明了个成员变量o,初始值为null,没有创建对象
      

  3.   

    这里的o只是Point类的一个引用,是存储在栈中的,“必须使用new关键字创建对象”是在堆中开辟一块空间
    将对象实例存储在这块空间中,之后再通过栈中引用来引用这个实例,你可以试试直接输出“ private Point o;”中的o,会抛出空指针异常,因为你这里只是声明了一个引用,它还没有引用堆中的对象
     
      

  4.   

    只这样private Point o;
    o还没初始化
      

  5.   

    只是声明o是Point类型的成员变量
      

  6.   

    private Point o;//这是声明对象,不是创建对象,只是在栈内存定义了这么一个引用,也就是一个指针,大概占4个字节
    o = new Point();//这才是创建对象,在堆内存分配内存空间
      

  7.   

    这只是声明一个Point对象o
      

  8.   

     创建一个对象即new 一个对象其实做了三件事
    1.在堆内存中开辟一块空间,2.然后在栈内存中创建一个引用名  3. 最后才把引用名指向之前开辟的空间的地址
      

  9.   

    这里只是声明了个成员变量o,初始值为null,没有创建对象
      

  10.   

    额,只是声明point对象,没有初始化
      

  11.   

    人家的意思是说,对象必须用 new 创建但 private Point o;这条语句只是声明一个变量,并没有创建对象
      

  12.   

    创建与声明的区别而已··创建·可以这样去理解··我们要创建一个人的实例,就需要生出一个新人来!也就是new··而声明是指··我们不需要创建一个新的人··只需要给它一个名字··就可以先以他的名字给他办理一些东西·比如先给他定好遗产啊·这些··明白?例子:创建一个新楼主出来··Person lz=new Person();
         声明一个楼主``Person lz=null;//需要赋予一个初值··null
      

  13.   

    知识声明了一个Point对象,并没有实例化,new是用于实例化的。
      

  14.   

    对啊,NEW是实实在在在内存中有东西了。
      

  15.   

    规规矩矩用着就好,现在不用想太多,String s = "abcd";也没用到new啊~!至于你那个private  Point o;这个只是声明了一个Point 类型的变量而已,这个引用类型的变量并没有让它指向一个对象。
      

  16.   

    这里并没有创建对象,仅仅是声明Point类型的一个变量o,这里o的默认值是null.当用到o的时候必须要用new来对o进行实例化的,也就是创建对象。
      

  17.   

    Point是一个类,我们可以使用它来声明一个变量。就好像private String name;
    这里换成了 private Point o;是一个道理。
      

  18.   

    private Point o;并没有创建对象啊
      

  19.   

    这只是一个引用 但是 它的初始化是 NULL 么?
    请教!
      

  20.   

    Point是一个类哈, O是该类下一个实例化对象啊,还没有初始化啊!!
      

  21.   

    只声明,不初始化,是不需要用new的。只有初始化的才需要new关键字的
      

  22.   

    只有初始化的才需要new关键字的,声明是不需要new的!