黑马程序员技术交流社区

标题: 问一个比较偏比较无聊的问题 [打印本页]

作者: 她只是过客    时间: 2014-9-20 20:47
标题: 问一个比较偏比较无聊的问题
在方法里面可以new对象,new完之后还可以new第二次,也就是覆盖第一次new的对象,那么,为什么在类里面不能这么做?
  1. public class Demo1 {
  2.         Demo d=new Demo();
  3.                  d=new Demo();
  4.         public static void main(String[] args) {
  5.                  Demo d1=new Demo();
  6.                            d1=new Demo();
  7.         }

  8. }
  9. class Demo{
  10.        
  11.          
  12. }
复制代码

作者: 她只是过客    时间: 2014-9-20 20:55
不只是对象这样,变量也是这样,比如int类型的变量
作者: qq8921310    时间: 2014-9-20 22:39
不是很清楚,感觉应该跟栈内存与堆内存有关系吧

作者: java_dream    时间: 2014-9-20 22:51
d=new Demo();属于程序执行语句,执行语句只能放在方法里,与new对象无关
作者: yueyazhishang    时间: 2014-9-21 09:45
我也发现这个奇葩的问题,求解。
作者: ye361571404    时间: 2014-9-21 10:44
java_dream 发表于 2014-9-20 22:51
d=new Demo();属于程序执行语句,执行语句只能放在方法里,与new对象无关

这个同意
作者: 冒牌高手    时间: 2014-9-24 09:25
第三行属于语句,不能放在成员的位置上....
作者: 天的安排    时间: 2014-9-27 22:26
那里是成员变量的位置你没有入口能够访问它吧!!我是这么想的
作者: ql627666537    时间: 2014-9-27 22:41
第三句式是相当于赋值,语句不能在类中,应该在方法中。
  1. class Demo{
  2.         int i = 0;
  3.         //i = 2; (这样写是错误的)
  4. }
复制代码

作者: 潘杰    时间: 2014-10-3 10:59
创造了一堆没有引用指向的垃圾对象...
作者: ZilchBloom    时间: 2014-10-3 14:38
成员变量这样重新赋值没啥意义,所以就不让这么写吧,,,,猜的
作者: 潘多拉    时间: 2014-10-10 16:29
执行语句只能放在方法里面,什么时候见过写类里面了?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2