加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 创建的类的新实例或仅分配内存中的空间?

发布时间:2020-12-15 02:54:51 所属栏目:Java 来源:网络整理
导读:UPDATE public Fish mate(Fish other){ if (this.health 0 other.health 0 this.closeEnough(other)){ int babySize = (((this.size + other.size) /2)); int babyHealth = (((this.health + other.health) /2)); double babyX = (((this.x + other.x) /2.0)
UPDATE
public Fish mate(Fish other){
  if (this.health > 0 && other.health > 0 && this.closeEnough(other)){

    int babySize = (((this.size + other.size) /2));
    int babyHealth = (((this.health + other.health) /2));
    double babyX = (((this.x + other.x) /2.0));
    double babyY = (((this.y + other.y) /2.0));

    new Fish (babySize,babyHealth,babyX,babyY);
  }
  return null;
}

当调用新的Fish时,是否有一个新的Fish实例在没有引用的地方浮动,或者我是否只为新Fish分配内存而没有实际实例化它?

我可以获得新的Fish调用来创建一个具有唯一引用名称的Fish的实际实例,而不是迭代循环吗?

解决方法

When new Fish is called,is there a new instance of Fish floating around somewhere without a variable name or have I just allocated memory for a new Fish without actually instantiating it?

将创建一个新的Fish对象,并且将进行垃圾收集,因为没有对它的引用.
垃圾收集将在Fish的构造函数完成后(某个时间)进行.
在你的情况下,没有多大意义,但有时它确实如此,如果实例化一个对象将启动一个新的线程或运行一些你想要只运行一次的其他例程.

If I have only allocated memory or there is a Fish without a name,how can I get the new Fish call to create an actual instance of the Fish with a unique variable name?

这不是很清楚.但我觉得你只想回归新鱼(…);并在你调用它的地方将它分配给一个变量,例如:

Fish babyFish = femaleFish.mate(maleFish);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读