Поле со случайным значением int

Я пишу программу, которая имитирует простые операции с банковским счетом, и мне было интересно, как это сделать, чтобы, если я создаю новую учетную запись без каких-либо параметров, она получала случайный 7-значный идентификационный номер, который отображается в виде строки. Как я делаю, я получаю только java.util.Random@2a0364ef на выходе. Будем рады любой помощи и дополнительным комментариям по этому вопросу, так как это первый вопрос, который я разместил на этом сайте.

    import java.util.Random;

    class Account {

    String id;
    double stan;
    int num;
    static int counter;

    public Account() {
        **id = randomId().toString();**
        stan = 0;
        num = ++counter;

    }

    public Account(String id) {
        this.id = id;
        stan = 0;
        num = ++counter;

    }

    public Account(String id, double mon) {
        stan = 0;
        this.id = id;
        this.stan = mon;
        num = ++counter;

    }

    **static String randomId() {
        Random rand = new Random(7);
        return String.valueOf(rand);**
    }

    String getId() {
        return id;
    }

    double getStan() {
        return stan;
    }

    int getNum() {
        return num;
    }

    @Override
    public String toString() {
        return "Account's id " + getId() + " and balance " + getStan();
    }
}

public class Exc7 {

    public static void main(String[] args) {
        Account account = new Account("0000001"),
                acount0 = new Account("0000002", 1000),
                acount1 = new Account();




        System.out.println(account + "\n" + account0 + "\n" + account1);
    }

}

3 ответа

Решение

Используйте этот код:

Random rand = new Random(7);
return String.valueOf(Math.abs(rand.nextInt()));

Прямо сейчас вы представляете Random пример.

Вместо печати String представление математического абсолюта следующего int из ваших случайных будет делать свое дело.

Math.abs часть важна, иначе у вас могут быть отрицательные числа.

+ Изменить return String.valueOf(rand);

к

 return String.valueOf(rand.nextInt());

Причина:

Вы передаете случайный объект valueOf метод, а не значение, которое вам нужно. Вызов nextInt() метод, чтобы получить желаемое случайное значение.

Использование

return String.valueOf(rand.nextInt());

в противном случае вы получите строковое представление Random объект, а не случайный int что он может произвести.

Другие вопросы по тегам