A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 她只是过客 中级黑马   /  2014-9-20 20:47  /  1321 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在方法里面可以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. }
复制代码

12 个回复

倒序浏览
不只是对象这样,变量也是这样,比如int类型的变量
回复 使用道具 举报
不是很清楚,感觉应该跟栈内存与堆内存有关系吧
回复 使用道具 举报
d=new Demo();属于程序执行语句,执行语句只能放在方法里,与new对象无关

点评

这位仁兄的是正解。同意~  发表于 2014-10-4 20:18
回复 使用道具 举报
我也发现这个奇葩的问题,求解。
回复 使用道具 举报
java_dream 发表于 2014-9-20 22:51
d=new Demo();属于程序执行语句,执行语句只能放在方法里,与new对象无关

这个同意
回复 使用道具 举报
第三行属于语句,不能放在成员的位置上....
回复 使用道具 举报
那里是成员变量的位置你没有入口能够访问它吧!!我是这么想的
回复 使用道具 举报
第三句式是相当于赋值,语句不能在类中,应该在方法中。
  1. class Demo{
  2.         int i = 0;
  3.         //i = 2; (这样写是错误的)
  4. }
复制代码
回复 使用道具 举报
创造了一堆没有引用指向的垃圾对象...
回复 使用道具 举报
成员变量这样重新赋值没啥意义,所以就不让这么写吧,,,,猜的
回复 使用道具 举报
执行语句只能放在方法里面,什么时候见过写类里面了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马