Encapsulation
L'encapsulation est essentiellement une méthode d'organisation des données. Elle consiste à organiser les données et les méthodes sous forme de classes, de sorte que l'ensemble du programme repose sur des classes et que les données ainsi que les méthodes soient encapsulées au sein de ces classes. Cette encapsulation permet de contrôler l'accès à l'état interne d'un objet, favorisant ainsi la modularité, la maintenabilité et la sécurité dans un système logiciel.
Dans l'encapsulation, on utilise les modificateurs d'accès tels que 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 depuis l'extérieur.
Puisque la majorité des données ne sont pas directement accessibles en dehors de la classe, on utilise des getters et setters pour accéder ou modifier ces données.
Un bon exemple est une classe Customer
qui définit le client d'une banque :

index.cs
1234567891011121314151617181920212223242526272829303132public 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 accessible ou modifiable directement depuis l'extérieur. À la place, vous utilisez des méthodes comme Deposit
et Withdraw
pour modifier la valeur lorsque cela est nécessaire. De même, pour accéder à la valeur du solde, vous utilisez la méthode getBalance
.
L'utilisation du mot-clé public
est généralement déconseillée sauf si cela est nécessaire.
Pour rappel, si l'on souhaite qu'un champ reste inaccessible depuis l'extérieur de la classe mais accessible depuis les classes dérivées, on peut utiliser le modificateur d'accès protected
.
1. Quel rôle jouent les modificateurs d'accès dans l'encapsulation en C# ?
2. Lequel des modificateurs d'accès suivants doit être utilisé le moins possible afin de préserver l'encapsulation ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.04
Encapsulation
Glissez pour afficher le menu
L'encapsulation est essentiellement une méthode d'organisation des données. Elle consiste à organiser les données et les méthodes sous forme de classes, de sorte que l'ensemble du programme repose sur des classes et que les données ainsi que les méthodes soient encapsulées au sein de ces classes. Cette encapsulation permet de contrôler l'accès à l'état interne d'un objet, favorisant ainsi la modularité, la maintenabilité et la sécurité dans un système logiciel.
Dans l'encapsulation, on utilise les modificateurs d'accès tels que 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 depuis l'extérieur.
Puisque la majorité des données ne sont pas directement accessibles en dehors de la classe, on utilise des getters et setters pour accéder ou modifier ces données.
Un bon exemple est une classe Customer
qui définit le client d'une banque :

index.cs
1234567891011121314151617181920212223242526272829303132public 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 accessible ou modifiable directement depuis l'extérieur. À la place, vous utilisez des méthodes comme Deposit
et Withdraw
pour modifier la valeur lorsque cela est nécessaire. De même, pour accéder à la valeur du solde, vous utilisez la méthode getBalance
.
L'utilisation du mot-clé public
est généralement déconseillée sauf si cela est nécessaire.
Pour rappel, si l'on souhaite qu'un champ reste inaccessible depuis l'extérieur de la classe mais accessible depuis les classes dérivées, on peut utiliser le modificateur d'accès protected
.
1. Quel rôle jouent les modificateurs d'accès dans l'encapsulation en C# ?
2. Lequel des modificateurs d'accès suivants doit être utilisé le moins possible afin de préserver l'encapsulation ?
Merci pour vos commentaires !