Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Encapsulation | Principes de la POO
C# Au-Delà des Bases

bookEncapsulation

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
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 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.

Note
Remarque

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 ?

question mark

Quel rôle jouent les modificateurs d'accès dans l'encapsulation en C# ?

Select the correct answer

question mark

Lequel des modificateurs d'accès suivants doit être utilisé le moins possible afin de préserver l'encapsulation ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

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

bookEncapsulation

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
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 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.

Note
Remarque

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 ?

question mark

Quel rôle jouent les modificateurs d'accès dans l'encapsulation en C# ?

Select the correct answer

question mark

Lequel des modificateurs d'accès suivants doit être utilisé le moins possible afin de préserver l'encapsulation ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 6
some-alt