Contenu du cours
C# au-delà des Bases
C# au-delà des Bases
Encapsulation
L'encapsulation est essentiellement une méthode d'organisation des données. Elle implique l'organisation des données et des méthodes sous forme de classes, de sorte que l'ensemble du programme est essentiellement basé sur des classes et que les données et les méthodes sont encapsulées au sein de ces classes. Cette encapsulation offre un moyen de contrôler l'accès à l'état interne d'un objet, favorisant la modularité, la maintenabilité et la sécurité dans un système logiciel.
Dans l'encapsulation, nous utilisons les modificateurs d'accès comme public
, private
et protected
pour masquer la plupart des champs et méthodes d'une classe et n'exposer que ceux qui doivent être utilisés de l'extérieur.
Étant donné que la plupart des données sont directement inaccessibles en dehors de la classe, nous utilisons des getters et des setters pour accéder ou modifier les données.
Un bon exemple est une classe Customer
qui définit le client d'une banque :
index
public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
Dans l'exemple ci-dessus, aucun champ n'est directement accessible ou modifiable de l'extérieur. Au lieu de cela, nous utilisons des méthodes comme Deposit
et Withdraw
pour modifier la valeur chaque fois que nécessaire. De même, pour accéder à la valeur du solde, nous utilisons la méthode getBalance
.
Le mot-clé public
est généralement déconseillé sauf si nécessaire.
1. Quel rôle jouent les modificateurs d'accès dans l'encapsulation en C# ?
2. Lequel des spécificateurs de format suivants doit être utilisé au minimum pour garantir l'encapsulation ?
Merci pour vos commentaires !