Эти направления мне не понятны - PullRequest
0 голосов
/ 01 февраля 2019

Мне нужно создать программу, которая использует два файла, называемых coin.Один файл называется монета, а другой - тестер монет.Указания в книге сбивают меня с толку, но я все еще пытался выполнить задание.

Вот указания, которые были даны:

Создайте класс Coin, который включает переменную faceUp, в которой хранится либо 0 для заголовков, либо 1 для хвостов, метод доступа с именемshowFace (), которая возвращает 0, если монета выпадает на голову, или 1, если монета выпадает, и метод модификатора с именем flipCoin (), который назначает случайное целое число от 0 до 1 включительно, для переменнойfaceUUp.

Протестируйте класс с помощью следующего клиентского кода:

public class CoinTester{
    public static void main(String[] args) {
        Coin nickel = new Coin();
        if (nickel.flipCoin() == 0) {
            System.out.println("Heads up!");
        } else {
            System.out.println("Tails up!");
        }
    }
}

Вот мой код для файла с именем coin:

public class Coin {
    private int faceUp;

    public Coin() {
        faceUp = (int)(Math.random() * 2);
    }

    public int showCoin() {
        return faceUp;
    }

    public void flipCoin() {
        faceUp = (int)(Math.random() * 2);
    }
}

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

Ответы [ 2 ]

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

Метод возвращает что-то, если он дает информацию.flipCoin не должен давать информацию, но showCoin есть.Фактически, это то, что вы хотите использовать в своем операторе if, чтобы увидеть состояние монеты.Кроме того, вы захотите перевернуть монету перед ее просмотром.Этот код должен работать:

public class CoinTester{
    public static void main(String[] args) {
        Coin nickel = new Coin();
        nickel.flipCoin();
        if (nickel.showCoin() == 0) {
            System.out.println("Heads up!");
        } else {
            System.out.println("Tails up!");
        }
    }
}
0 голосов
/ 01 февраля 2019

вы сравниваете результат flipCoin с целым числом.

, но вы определили flipCoin как void (нет возврата).

один из них должен измениться

В качестве примечания:

Нет правила, согласно которому метод модификаторов не может возвращать значение.Хотя обычно они этого не делают, иногда они возвращают значение, чтобы программист не мог написать дополнительную строку.

...