Accesseurs, mutateurs et autres méthodes

images/whitebelt.png

Prenons un exemple plus raisonnable d’encapsulation:

public class CompteEnBanque {
   private String id ; // immuable
   public String getID() { return this.id ; } // Accesseur

   private double découvertPermis ;
   public double getDécouvertPermis() { return this.découvertPermis ;}
   public void setDécouvertPermis(double val) { // Mutateur
      this.découvertPermis = val ;
   }

   private double solde ;
   public void dépôt(double montant) { // modificateur de l'état de l'objet
      // code
   }
   public void retrait(double montant) {
      // code
   }
   public double getSolde() { return this.solde ;}

   private Truc champTechnique ; // pas d'accesseur/mutateur

   private Operation[] historiqueOperations = new Operation[TAILLE_INITIALE];
   // pas de mutateurs: les méthodes dépôt et retrait modifient ce tableau
   // un accesseur très particulier
   public Operation[] getHistoriqueOperation() {
      return historiqueOperation.clone() ;
   }

   // autres codes
}

CET EXEMPLE EST ESSENTIEL!

Ici :