Попытка создать метод проверки ошибок, чтобы счетчик не уменьшался, когда счетчик равен 0 - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь создать собственный класс Counter и программу CounterDemo для следующих инструкций, но я не уверен, как выполнить проверку на ошибки (попытался написать метод с именем counterOK, который не работает), чтобы убедиться, чтоСообщение об ошибке появляется, если счетчик пытается уменьшить от нуля.Я думаю, что мне также нужно написать метод для сброса значения до нуля, как говорится в сообщении об ошибке.Разве я не могу просто сбросить его, используя метод Counter, который я написал?

Инструкции: записать класс счетчика в его собственный файл.Это позволит использовать ваш счетчик в любой программе.

Счетчик должен иметь возможность увеличивать и уменьшать на единицу.Он никогда не должен опускаться ниже нуля.toString и equals должны быть правильно реализованы и протестированы.System.out.println ("" + c1) должен работать, и если (c1.equals (c2)) должен работать, где c1 и c2 являются экземплярами вашего счетчика. Включите переопределение конструктора по умолчанию, который устанавливает счетчик в ноль, и aКонструктор, который позволяет вам установить количество.

Напишите тестовую программу, которая проверяет все функции счетчика. См. мой пример farkleberry в документации курса.

Это задание проверяет ваше понимание материалав тексте. Он также предоставляет шаблон для будущих заданий. Он предназначен для предоставления вам основных инструментов для написания коммерческих классов, которые пишутся в отдельных файлах и всегда включают toString и equals. Это также пример того, как программисты тестируют своиклассы до их освобождения.

public class Counter {

    private int count;  //local counting variable

    public Counter()
    {
        count = 0;
    }

    public void setCounter(int newCount)
    {
        count = newCount;
    }

    public int getCounter()
    {
        return count;
    }

    public void increment1 ()
    {
        count++;
    }

    public void decrement1 ()
    {
        count--;
    }

    public String toString()
    {
        return "" + count;
    }

    public boolean equals(Counter c)
    {
        boolean result = false;
        if (this.getCounter() == c.getCounter())
        {
            result = true;
            return result;
        }
        return result;
    }

    public boolean counterOK(int check)
    {
        boolean result = true;
        if (check > 0)
        {
            return result;
        }
            else
                return false;

    }
}

public class CounterDemo {

    public static void main(String[] args) {

        //initiate objects
        Counter c1 = new Counter(), c2 = new Counter();

        //show initial state of counters
        System.out.println("Initial state");
        System.out.println("Counter1 is at " + c1.toString());
        System.out.println("Counter2 is at " + c2.toString());
        if (c1.equals(c2))
            System.out.println("Counter1 equals Counter2.");
        else
            System.out.println("Counter1 does not equal Counter2");

        c1.decrement1();
        if (c1.counterOK(c1))
        {
            System.out.println();
        }
        else
            System.out.println("Error - attempted to subtract 1 Counter from 0 Counter.\n" + "Number of Counter reset to 0.");
        System.out.println(c1.toString());
    }
}

Возможный пример Вывод:

This program creates and uses Counters

Initial state  
counter1 is at 0.  
counter2 is at 0.  
counter1 equals counter2.  

Error - Attempted to subtract 1 Counter from 0 Counter.  
Number of Counter reset to 0.  

State after first test  
counter1 is at 1.  
counter2 is at 0.  
counter1 does not equal counter2.  

State after second test  
counter1 is at 2.  
counter2 is at 2.  
counter1 equals counter2.  

Process completed.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете просто не уменьшать ниже нуля, проверяя.

public void decrement1 () {
    if (count==0) {
        System.out.println("Error- Attempted to subtract 1 Counter from 0 Counter. Number of Counter reset to 0." );
        return;
    }
    count--;
}

Читая инструкции, я не думаю, что вам нужно отображать ошибку, просто обработайте ошибку и сбросьте ее до нуля.

Кроме того, вы пропустили ту часть инструкций, которая запрашивает этот конструктор:

public Counter(int initialCount) {
    if (initialCount < 0) {
        count = 0;
    } else {
        count = initialCount;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...