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

Zac*_*lor 6 java instance

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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Ido*_*dos 8

Fish调用new时,是否有一个新的Fish实例在没有变量名的情况下浮动,或者我是否只为新Fish实例分配内存而没有实际实例化它?

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

如果我只分配了内存或Fish没有名称,我如何获得新Fish调用以创建具有Fish唯一变量名称的实际实例?

这不是很清楚.但是我觉得你只是想把return new Fish(...);它自己分配给一个变量,你可以在其中调用它,例如:

Fish babyFish = femaleFish.mate(maleFish);
Run Code Online (Sandbox Code Playgroud)