黑马程序员技术交流社区

标题: 关于匿名对象的一点疑惑 [打印本页]

作者: 骄傲的倔强    时间: 2014-1-15 17:17
标题: 关于匿名对象的一点疑惑
不知道为什么以下的代码可以正常运行,System里面的不是匿名对象吗?   匿名对象不是只能使用一次吗?
为什么可以连续使用,可以调用getName方法~


  1. class Demo
  2.         {
  3.                 private String name;
  4.                 private static int count = 0;
  5.                 public Demo()
  6.                 {
  7.                         count++;
  8.                         this.name = "Demo-" + count;
  9.                 }
  10.                 public Demo(String name)
  11.                 {
  12.                         this.name = name;
  13.                 }
  14.                 public String getName()
  15.                 {
  16.                         return this.name;
  17.                 }

  18.         }
  19.         public class StaticDemo
  20.         {
  21.                 public static void main(String args[])
  22.                 {
  23.                         System.out.println(new Demo().getName());        
  24.                         System.out.println(new Demo("ZHANGSAN").getName());
  25.                         System.out.println(new Demo().getName());
  26.                         System.out.println(new Demo("LISI").getName());

  27.                         }        
  28.                         }
复制代码

作者: 强子    时间: 2014-1-15 17:25
看看你的代码:
System.out.println(new Demo().getName());         
System.out.println(new Demo("ZHANGSAN").getName());
System.out.println(new Demo().getName());
System.out.println(new Demo("LISI").getName());
匿名对象是只能使用一次,你也的确只使用了一次啊,  你的每一条System输出语句里面都有new,说明什么呢?你每次都new了一个匿名对象!
也就是说你这是4个匿名对象,而且每个对象都只使用了一次。
作者: dapeng111    时间: 2014-1-15 17:35
每new一个对象都在堆中创建一个对应的实体,在这里是四个不同的实体,虽然都是匿名的,但是每两个都不一样。
作者: 骄傲的倔强    时间: 2014-1-15 17:36
强子 发表于 2014-1-15 17:25
看看你的代码:
System.out.println(new Demo().getName());         
System.out.println(new Demo("ZHANG ...

那大神能帮我举个用多次的例子吗?
作者: 强子    时间: 2014-1-15 18:24
System.out.println(new Demo("LISI").getName());
匿名对象是只能使用一次,你也的确只使用了一次啊,  你的每一条System输出语句里面都有new,说明什么呢?你每次都new了一个匿名对象!
也就是说你这是4个匿名对象,而且每个对象都只使用了一次。


只能使用一次你让我举什么例子?
作者: 骄傲的倔强    时间: 2014-1-15 20:49
强子 发表于 2014-1-15 18:24
System.out.println(new Demo("LISI").getName());
匿名对象是只能使用一次,你也的确只使用了一次啊,   ...

就是错误的例子啊,我看看错误的是什么样子的,下次就能注意了。
作者: 黄晓鑫    时间: 2014-1-15 22:49
因为你每调用一次就等于创建了一个对象 所以对象是可以无限调用方法的 呵呵




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