Java-конструктор с аргументом, имеющим максимальное значение - PullRequest
0 голосов
/ 28 сентября 2019

Начиная с Java, я хотел бы, чтобы один из аргументов в конструкторе не превышал определенного значения при создании.например:

public class Vehicule {
    protected String immat;
    protected int poidsVide;
    protected int charge;
    protected int chargeMax;

    Vehicule(String immat, int poidsVide, int charge) {
        this.immat = immat;
        this.poidsVide = poidsVide;
        this.charge = charge;
        this.chargeMax = 10000;
   }
}

Я не хочу, чтобы какой-либо объект, для которого экземпляр 'charge' превосходил 'chargeMAx', как мне это сделать?пробовал несколько вариантов, пока ничего не работает.

спасибо за вашу помощь.

1 Ответ

6 голосов
/ 28 сентября 2019

Во-первых, кажется, что ваш chargeMax является постоянным значением, и ему не нужно получать его значение (10000) в конструкторе.Вы можете сделать это непосредственно в объявлении поля.

Во-вторых, вам разрешено поместить некоторую логику в ваш конструктор.Эта логика зависит от того, что вам нужно.Вы можете автоматически заставить сборщик получать зарядMax, когда конструктор получает значение, большее его.1008 *

Vehicle(String immat, int poidsVide, int charge) {
    this.immat = immat;
    this.poidsVide = poidsVide;

    if (charge > CHARGE_MAX){
      throw new IllegalArgumentException("Charge cannot be bigger than " + CHARGE_MAX);
    }
    else {
      this.charge = charge;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...