你如何在Java中正确定义命令?

How do you correctly define a command in Java?

我正在学习使用 Becker 机器人编程。我正在努力解决的是如何缩短争论。例如,更改: 左转() 向左转()

变成类似这样的东西: 回转() 我试过用几个不同的命令来做到这一点 导入 becker.robots.*;

public class addingservices extends Robot
{

  public addingservices(london, 5, 5, Direction.SOUTH)
  { super(london, 5, 5, Direction.SOUTH);
    }

City = London = new City();
Robot lisa = new Robot(london, 1, 1);


public void turnAround()
{ this.turnLeft();
  this.turnLeft();
}

public void move3()
{this.move();
  this.move();
  this.move();
}

public void turnRight()
{this.turnLeft();
  this.turnLeft();
  this.turnLeft();
}

public void turnRight()
{this.turnAround();
  this.turnLeft();
}

lisa.turnAround();
lisa.move3();
lisa.turnRight();
lisa.move3();

}

我是Java的新手所以请怜悯我的灵魂

你需要一个 main 方法来实际 运行 一些东西。类似于:

public static void main(String[] args){
    addingservices lisa = new addingservices([some arguments go here])
    lisa.turnAround();
    lisa.move3();
    lisa.turnRight();
    lisa.move3();
}

这通常位于 class 的底部,class 代码括号内。 IOW,它将取代您现在拥有的用于 "lisa" 的四个命令。 此外,您有一个奇怪的构造函数标题:

public addingservices(london, 5, 5, Direction.SOUTH)

我很惊讶 Java 允许它编译。您需要一些具有定义参数的东西,例如(从 Robot 构造函数中借用):

public addingservices(City aCity, int aStreet, int anAvenue, Direction aDirection)

然后,在构造函数本身中,您可以将 aCity、aStreet、anAvenue 和 aDirection 传递给超级构造函数。

然后,在 main 中,您需要创建一个城市:

City london = new City(10,10);

这将允许您将 london 作为 main 中的参数传递。因此,读取 [some arguments go here] 的行现在将读取:

`addingservices lisa = new addingservices(伦敦, 5, 5, Direction.SOUTH);

清楚了吗?

如果我的回答对您有帮助,请您采纳(点击左边的复选框),我将不胜感激。这样,我的努力就会得到回报。