Как реализовать случайное сгенерированное число в переменную в сеттер или геттер? - PullRequest
1 голос
/ 25 июня 2019

Я новичок в ООП Java.Каков наилучший способ реализовать это.Я хочу сгенерировать семь случайных чисел в accountNumber?Я положил уравнение в сеттер или конструктор?

private int accountNumber;
private float  balance;
private String customerName;
private String email;
private String phoneNumber;


public Account(int accountNumber, float balance, String customerName, String email, String phoneNumber) {
    this.accountNumber = accountNumber;
    this.balance = balance;
    this.customerName = customerName;
    this.email = email;
    this.phoneNumber = phoneNumber;
}

Ответы [ 6 ]

2 голосов
/ 25 июня 2019

Вы можете сделать это java.util.Random. попробуйте код ниже,

private static Random random = null; //static Random instance
int min = 999999; //minimum number
int max = 9999999; //maximum number

public Account(float balance, String customerName, String email, String phoneNumber) {
    this.accountNumber = getRandom().nextInt((max - min) + 1) + min; //generating a new random number with length of seven
    this.balance = balance;
    this.customerName = customerName;
    this.email = email;
    this.phoneNumber = phoneNumber;
}
public static Random getRandom() {
    if (Objects.isNull(random)) {
        random = new Random(); //Creates new Random instance only if random is null
    }
    return random; //return a Random instance
}
1 голос
/ 25 июня 2019

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

Если вы добавили «уравнение» в геттер илиsetter, значение меняется при каждом вызове этих методов.

Наконец, это зависит от ваших требований.Если вы собираетесь повторно использовать объект класса Account, лучше всего поместить формулу в установщик.Если вы собираетесь создать несколько объектов для класса Account, тогда используйте конструктор (рекомендуется).

Для генерации случайных чисел вы можете использовать Math.random или java.util.Random

1 голос
/ 25 июня 2019

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

В конструкторе вы можете сделать:

this.accountNumber = (int)(Math.random() * 9000000) + 1000000;

, что будетустановите для accountNumber случайное число от 1 000 000 до 9 999 999.

0 голосов
/ 25 июня 2019

Java Предоставляет 3 способа генерации случайных чисел:

  1. Случайный класс из пакета java.util
  2. Метод Math.Random
  3. Класс ThreadLocalRandom

Используя это, мы можем генерировать случайные числа на основе приложения.

0 голосов
/ 25 июня 2019

Не изобретайте велосипед для генерации случайных чисел, возможно, вы можете использовать класс Apache Commons RandomStringUtils.

RandomStringUtils.random(9) // Creates a random string whose length is the number of characters specified(9 for example).

Ссылка - https://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/RandomStringUtils.html

0 голосов
/ 25 июня 2019

Как опа, вы должны использовать отдельный метод для создания номера счета ..... внутри метода я использую код @Mihir

public int generateAccountNumber() {
        return (int) (Math.random() * 9000000) + 1000000;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...