编写Class类,然后实现它们

时间:2019-08-04 01:38:25

标签: java class

我编写了一个名为“ 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”,我不得不强制退出,因为程序不会停止编译

0 个答案:

没有答案