Comment définir l'interface publique d'une classe (encapsulation) ?
private les détails d'implémentation internes pour permettre leur évolution sans impacter le code clientIsoler l'implémentation interne pour pouvoir la modifier sans casser le code qui utilise la classe.
Refactoriser CompteBancaire : remplacer double solde par int soldeEnCentimes sans changer l'interface publique.
Isoler l'implémentation interne pour pouvoir la modifier sans casser le code qui utilise la classe.
Tout ce qui est private peut être refactorisé librement ; seule l'interface public doit rester stable.
private pour les isoler de l'interface publique.Refactoriser CompteBancaire : remplacer double solde par int soldeEnCentimes sans changer l'interface publique.
Le stockage interne (solde en euros ou en centimes) ne concerne pas l'utilisateur — seule la valeur retournée par getSolde() lui importe.
// Implémentation initiale
class CompteBancaire {
private double solde; // détail interne
public double getSolde() { return solde; }
public void deposer(double montant) { solde += montant; }
}
private pour les isoler de l'interface publique.On change le stockage interne en centimes — champ private donc modifiable librement.
class CompteBancaire {
private int soldeEnCentimes; // nouveau détail interne
public double getSolde() { return soldeEnCentimes / 100.0; }
public void deposer(double montant) {
soldeEnCentimes += (int)(montant * 100);
}
}
L'interface publique (getSolde, deposer) reste identique — le code client n'a rien à changer.
CompteBancaire c = new CompteBancaire();
c.deposer(10.50); // fonctionne comme avant
double s = c.getSolde(); // retourne 10.5 — même comportement
Le remplacement de double solde par int soldeEnCentimes est transparent pour le code client car la représentation interne est privée.
Refactoriser Etudiant : remplacer le champ String nomComplet par deux champs prenom et nom sans changer l'interface publique.
Refactoriser Cercle : remplacer double rayon par double diametre en interne sans changer l'interface.
Crée ton compte pour accéder à la fiche et aux exercices