我想要递归构造函数调用 - 如何解决错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想要递归构造函数调用 - 如何解决错误?相关的知识,希望对你有一定的参考价值。
我正在为一个正在进行的课程编写一个有趣的作业,而且它的所有关于多态性和编码对象等...基本上,我们被要求编写一个与其他学生生物作斗争的“生物”对象。
当我的生物对象上调用某个方法时,我怎么能这样做呢(丢失(),当我的生物失去战斗时)它再次调用自己的构造函数以使它“重生”?
这是我的代码。
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();
}
}
基本上,我希望我的小动物不朽。可能吗?
答案
你可以失去创造一个新的赫斯基
public void lose() { new Husky(); }
或者返回一个:
public Critter lose() { return new Husky(); }
以上是关于我想要递归构造函数调用 - 如何解决错误?的主要内容,如果未能解决你的问题,请参考以下文章