java 构造函数,其参数具有最大值

从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”,我应该怎么做?尝试了几种选项,到目前为止没有任何效果。


感谢您的帮助。


白板的微信
浏览 112回答 1
1回答

拉丁的传说

首先,您的 chargeMax 似乎是一个常量值,不需要在构造函数中接收其值(10000)。您可以直接在其字段声明中执行此操作。其次,您可以在构造函数中添加一些逻辑。该逻辑取决于您的需要。当构造函数接收到大于 chargeMax 的值时,您可以自动使 charge 接收 chargeMax。例如:public class Vehicle {    protected String immat;    protected int poidsVide;    protected int charge;    protected static final int CHARGE_MAX = 10000; // this is a constant    Vehicle(String immat, int poidsVide, int charge) {        this.immat = immat;        this.poidsVide = poidsVide;        if (charge > CHARGE_MAX){          this.charge = CHARGE_MAX;        }        else {          this.charge = charge;        }    }}另一个想法是当 Vehicle 收到一些不需要的值时抛出异常: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;    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java