我想要递归构造函数调用 - 如何解决错误?

时间:2018-03-05 05:37:08

标签: java recursion constructor invocation

我正在编写一个有趣的作业,为我所参加的课程及其所有关于多态性和编码对象等...基本上,我们被要求编写一个"生物"对抗其他学生生物的对象。

如何在我的生物对象上调用某个方法时(丢失(),当我的生物失去战斗时),然后它再次调用自己的构造函数,这样它就会重生#"重生&# 34;

这是我的代码。

import java.awt.*;
import java.util.*;

public class Husky extends Critter {
   //fields
   private int x = getWidth();
   private int y = getHeight();
   private Random r = new Random();
   private Direction[] directions = {Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST};

   public Husky() {}

   public boolean eat() {
      return true;
   }

   public Attack fight(String opponent) {
      if (opponent.equals("%")) {
         return Attack.ROAR;
      } else if (opponent.equals("^") || opponent.equals(">") || opponent.equals("V")
     || opponent.equals("<") || opponent.equals("0")) {

     return Attack.SCRATCH;
      } else {
         return Attack.ROAR;
      } 
   }


   public Direction getMove() {
      int z = r.nextInt(4);
      return directions[z];
   }  

   public Color getColor() {
      return Color.CYAN;
   }

   public String toString() {
      return "∏";
   }

   public void lose() {
      this();
   }
}

我希望我的小动物基本上是不朽的。有可能吗?

1 个答案:

答案 0 :(得分:0)

你可能会失去创造一个新的赫斯基

public void lose() { new Husky(); }

或返回一个:

public Critter lose() {  return new Husky();  }