public class Compte { private int numero = 0; // numero ducompte private double solde = 0; // solde du compte private double decouvertMax = 0; // decouvert maximum autorise /** * Constructeur d'un compte * @param no le numero du compte * @param decouvert le decouvert maximum autorise pour le compte * @param depotInitial le depot sur le compte a sa creation */ public Compte(int no, double decouvert, double depotInitial) { numero = no; decouvertMax = -decouvert; solde = depotInitial; } /** * vide completement le compte */ public void vider() { solde = 0; } /** * depose la somme s sur le compte * @param s la somme a deposer */ public void deposer(double s) { solde += s; } /** * retire la somme r du compte * si le retrait entraine un solde negatif superieur au decouvert autorise * le retrait n'est pas effectue et un message d'erreur le signale a l'ecran * @param r la somme a retirer */ public void retirer(double r) { if ((solde - r) < decouvertMax) { System.out.println("Retrait non autorise"); System.out.println("retirer " + r + " frs provoquerait un decouvert de " + (solde - r)); System.out.println("alors que le decouvert max est de " + decouvertMax + "frs"); } else solde -= r; } public double retraitMaxPossible() { return (solde + decouvertMax); } /** * transfert sur le compte la somme montant depuis le compte c * si le retrait de montant sur le compte c entraine un solde * negatif superieur au decouvert autorise * le transfert n'est pas effectue et un message d'erreur le signale a * l'ecran * @param compte depuis lequel le tranfert est effectue * @param montant la somme a retirer */ public void transfererDepuis(Compte c, double montant) { if ((c.solde - montant) < (c.decouvertMax)) { System.out.println("transfert du compte " + c.numero + " au compte" + this.numero + " impossible"); System.out.println("pas assez d'argent sur compte " + c.numero); } else { c.retirer(montant); this.deposer(montant); } } /** * affiche l'etat du compte */ public void afficher() { System.out.println("Compte " + numero + ": " + solde + " frs"); if (solde < 0) System.out.println("Attention ! Vous etes a decouvert"); } }