有多少个对象在此代码段创建

Nemaly普利文:

多少对象将这段代码产生的呢?

class Main {
  int num;
  public static void gacemarks(Main m)
  {
    m.num += 10;
  }
  public static void main(String[] args) {
    Main m1 = new Main();
    Main m2 = m1;
    Main m3 = new Main();
    m2.num = 60;
    gacemarks(m2);
    System.out.println(m2);
  }
}

答案是2,但我得到了3 M1将被创建,M2是指新创建同一个对象M3和调用后,产生m个对象。

蒂姆Biegeleisen:

在你的代码的情况下,只有两个我看到正在明确创建的对象是其中的线条new出现操作:

Main m1 = new Main();
Main m3 = new Main();

下面是其中的每一行内发生故障:

Main m1 = new Main();     // create new Main object 'm1'
Main m2 = m1;             // assign 'm2' to reference 'm1' (no new object)
Main m3 = new Main();     // create new Main object 'm3'
m2.num = 60;              // assign a field in 'm2' (no new object)
gacemarks(m2);            // repeatedly increment the 'm2.num' field (no new object)
System.out.println(m2);   // print 'm2' (no new object)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章