Создание программы автомобиля - PullRequest
0 голосов
/ 31 октября 2018

Прямо сейчас я выполняю некоторые задачи из приобретенной е-книги java, и, к сожалению, я застрял. Основная идея этой программы - создать класс Vehicle, который вместе с тестовой программой может увеличивать, уменьшать и нарушать текущую скорость.

Начальная скорость должна быть равна 0. Я хочу, чтобы пользователь указал, с какой скоростью должен двигаться автомобиль (например, 90 км / ч). После достижения скорости (в данном случае 90) я хочу, чтобы программа спросила пользователя, хочет ли он снизить скорость до заданного значения, остаться на той же скорости или перейти на 0. Следует ли все это делать в тестовой программе? или он должен быть реализован в классе Vehicle?

Я должен создать программу из следующего UML: https://i.stack.imgur.com/01fgM.png

Это мой код:

public class Vehicle {
    int speed;

    //Constructor
    public Vehicle () {
        this.speed = 0;
    }

    public void increaseSpeed (int differenceInc) {
        this.speed += differenceInc;
    }

    public void decreaseSpeed (int differenceDec) {
        this.speed -= differenceDec;
    }

    public void brake() {

    }

    public int getSpeed () {
        return this.speed;
    }   
}

А это мой пустой тестовый класс.

public class VehicleTest {

public static void main(String[] args) {

    Vehicle golf = new Vehicle();

    //Speed which should be accelerated to:
    Vehicle myHybrid = new Vehicle();

    System.out.println("You've hit the given speed. Do you want to stay at this speed, break, or decrease to another given speed?");

}

}

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Ну, во-первых, добро пожаловать в Stack Overflow.

Если вы хотите, чтобы метод принимал аргументы (параметры), вы должны объявить упомянутые аргументы и типы аргументов в объявлении метода:

    public void increaseSpeed (int augmentValue) {
        this.speed += augmentValue;
    }

Вы также спрашиваете о разработке программного обеспечения: "должен ли пользователь (клиент) компонента (Транспортное средство) иметь возможность устанавливать значение дополнения для метода incrementSpeed?" , Ответ зависит от дизайна указанного компонента. Если ваш метод примет аргумент, то, возможно, метод должен также проверить входное значение и установить предварительные и последующие условия.

Надеюсь, это поможет.

0 голосов
/ 31 октября 2018

Вероятно, идея состоит в том, чтобы взять int для increaseSpeed(), чтобы вы могли увеличить скорость на указанное число. Также добавьте логику для достижения ограничения скорости в вашем методе increaseSpeed.

Итак ...

public void increaseSpeed (int amount) {
    if (speed + amount < MAX_SPEED) {  // Where MAX_SPEED is a static final int of value 90
        this.speed += amount;
    } else {
        System.out.println("Max speed reached. Want to exceed (y/n)?");
        Scanner scanner = new Scanner(System.in);
        char c = scanner.next().charAt(0);
        if (c == 'y') {
            this.speed += amount;
        }
    }
}

Вы можете сделать то же самое для decreaseSpeed(), конечно. Не забудьте проверить, не приводит ли снижение скорости к отрицательной скорости (если только вы не считаете отрицательное значение скорости движением задним ходом.

Кстати, здесь я жестко прописал MAX_SPEED для простоты. Это, конечно, зависит от дороги, по которой вы едете, поэтому, вероятно, лучше сделать это по-другому (например, класс Road, который включает в себя определенные атрибуты данной дороги, или передавая оба целых числа для суммы Вы хотите ускорить с и целое число для максимальной скорости).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...