TP-metaprogrammation-test/Monnaie.java
2021-12-03 15:53:43 +01:00

60 lines
1.5 KiB
Java

/** La classe Monnaie est caractérisée par une valeur et une devise. Deux
* monnaies peuvent être ajoutées ou retranchées.
*
* @author Xavier Crégut
* @version $Revision: 1.1 $
*/
public class Monnaie {
private int valeur;
private String devise;
/** Initialiser une monnaie à partir de sa valeur de et sa devise.
* @param valeur valeur de la monnaie
* @param devise devise de la monnaie
*/
public Monnaie(int valeur, String devise) {
this.valeur = valeur;
this.devise = devise;
}
/** Obtenir la valeur de cette monnaie.
* @param la valeur de cette monnaie
*/
public int getValeur() {
return this.valeur;
}
/** Obtenir la devise de cette monnaie.
* @param la devise de cette monnaie
*/
public String getDevise() {
return this.devise;
}
/** Ajouter une autre monnaie à cette devise.
* @param autre l'autre devise
* @depend - <send> - DeviseInvalideException
*/
public void ajouter(Monnaie autre) throws DeviseInvalideException {
verifierMemesDevises(autre);
this.valeur += autre.valeur;
}
/** Retrancher une autre monnaie à cette devise.
* @param autre l'autre devise
* @depend - <send> - DeviseInvalideException
*/
public void retrancher(Monnaie autre) throws DeviseInvalideException {
verifierMemesDevises(autre);
this.valeur -= autre.valeur;
}
private void verifierMemesDevises(Monnaie autre) throws DeviseInvalideException {
if (! this.devise.equals(autre.devise)) {
throw new DeviseInvalideException("Devises incompatibles : "
+ this.devise + " et " + autre.devise);
}
}
}