我编写了一个名为“ bug”的类,它具有许多方法(主要是获取和设置),它们也打算代表电线上的一个错误,该错误可以左右移动,改变方向并追溯他的脚步。我已经为错误对象编写了代码,但是由于我的输出很遥远,因此显然犯了一个错误。希望只是一个我忽略的逻辑错误。
我只是使用bug对象发布我的代码,而不是创建对象本身的代码,但是如果有帮助,我可以发布。
我是编码的新手,刚开始在我的学校在线学习。我尝试在main方法下添加一个默认语句,但它一直说“孤单默认值”,这是我以前从未遇到过的。
public class DemoBug
{
public static void main( String[] args)
{
bug b = new bug(0, "right");
System.out.println("Bug is facing" + b.getDirection());
for(int x = 0; x<10; x++)
{
b.retrace();
System.out.println(b);
}
System.out.println("Bug is changing direction");
b.turn();
System.out.println("Bug is moving " + b.getDirection());
for(int i = 0; 1<10; i++)
{
b.retrace();
System.out.println(b);
}
}
}
我正在根据请求添加错误类
public class bug
{
//things declared at class level here
private int startingPosition, getPosition, currentposition;
private int position;
private String currentDirection, getDirection;
//constucotr: sets initial position of the bug
public bug()
{
startingPosition = 0;
currentDirection = "right";
}
public bug(int sp, String cd)
{
startingPosition = sp;
currentDirection = cd;
}
public void setPosition(int a)
{
startingPosition = a;
}
public int getPosition()
{
return startingPosition;
}
public void setDirection(String s)
{
if(currentDirection == "right")
{
currentDirection = s;
}
else
{
System.out.println("The bug is facing left");
}
}
public String getDirection()
{
return currentDirection;
}
public void turn()
{
if(currentDirection == "left")
{
currentDirection = "right";
}
else
{
currentDirection = "left";
}
}
public void retrace()
{
if(currentDirection.equals("right"))
currentDirection = "left";
else
if(currentDirection.equals("left"))
currentDirection = "right";
}
public void move()
{
if(currentDirection.equals("right"))
startingPosition++;
else
if(currentDirection.equals("left"))
startingPosition--;
}
public String toString()
{
return "Bug is now at" + startingPosition;
}
}
预期输出类似于: “错误向右移动” “错误为1” “错误在2” “错误正在改变方向” “错误朝左” “错误在2” “但是在1” 这是目前最好的情况,但是我当前的输出是 “错误是at0”,我不得不强制退出,因为程序不会停止编译