Leçon 18 : Pillier 1 de l'OOP : Encapsulation
L'Encapsulation est le mécanisme consistant à regrouper les données (variables) et le code agissant sur ces données (méthodes) au sein d'une seule unité (la classe). Elle implique de restreindre l'accès direct aux composants.
Le principe de masquage des données
Nous parvenons à l'encapsulation principalement grâce aux modificateurs d'accès, qui contrôlent la visibilité et l'accessibilité.
Modificateurs d'accès en Java
| Modificateur | Visible dans la Classe | Visible dans le Package | Visible hors du Package (Sous-classe) | Visible Partout |
|---|---|---|---|---|
private | Oui | Non | Non | Non |
| (Par défaut/Package) | Oui | Oui | Non | Non |
protected | Oui | Oui | Oui | Non |
public | Oui | Oui | Oui | Oui |
Implémentation de l'encapsulation
La pratique courante consiste à déclarer toutes les variables d'instance comme private pour masquer les données internes et empêcher toute modification non autorisée.
java public class Account { // Les données sont masquées (private) private double balance = 0.0;
// Cette méthode est le seul moyen de modifier le solde
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("Dépôt réussi.");
} else {
System.out.println("Le montant du dépôt doit être positif.");
}
}
// Méthode pour lire les données
public double getBalance() {
return balance;
}
}
// Exemple d'utilisation : Account myAccount = new Account(); // myAccount.balance = -100; // ERREUR ! Impossible d'accéder au champ privé myAccount.deposit(500.0); // OK, accès contrôlé par la méthode deposit
Avantage : L'encapsulation nous permet de garder le contrôle sur l'état de l'objet, de valider les entrées et de modifier l'implémentation interne sans affecter le code externe qui utilise la classe.