Encapsulation dans Java
โก Rรฉsumรฉ intelligent
Encapsulation dans Java Il s'agit d'un mรฉcanisme qui regroupe les variables et les mรฉthodes en une seule unitรฉ tout en masquant les dรฉtails internes. Il protรจge les donnรฉes d'un objet grรขce ร des champs privรฉs et un accรจs contrรดlรฉ via des mรฉthodes d'accรจs publiques (getters et setters).

Quโest-ce que lโencapsulation dans Java?
Encapsulation dans Java est un mรฉcanisme permettant de regrouper les variables (donnรฉes) et les mรฉthodes (code) en une seule unitรฉ. C'est le processus de masquage des informations et de protection des donnรฉes et du comportement de l'objet. C'est l'un des quatre concepts importants de la POO. La classe encapsulate est facile ร tester, elle est donc รฉgalement meilleure pour les tests unitaires.
Cliquez ร nouveau ici si la vidรฉo n'est pas accessible
Apprenez l'encapsulation dans Java avec exemple
Pour comprendre en dรฉtail ce qu'est l'encapsulation, considรฉrez la classe de compte bancaire suivante avec les mรฉthodes de dรฉpรดt et d'affichage du solde
class Account { private int account_number; private int account_balance; public void show Data() { // code to show data } public void deposit(int a) { if (a < 0) { // show error } else account_balance = account_balance + a; } }
Supposons qu'un pirate informatique ait rรฉussi ร accรฉder au code de votre compte bancaire. Il essaie maintenant de dรฉposer le montant -100 sur votre compte de deux maniรจres. Voyons sa premiรจre mรฉthode ou approche.
Approche 1: Il essaie de dรฉposer un montant invalide (disons -100) sur votre compte bancaire en manipulant le code.
Maintenant, la question est โ Est-ce possible? Examinons cela de plus prรจs. En gรฉnรฉral, une variable dans une classe est dรฉfinie comme ยซ privรฉe ยป, comme indiquรฉ ci-dessous. Elle nโest accessible quโavec les mรฉthodes dรฉfinies dans la classe. Aucune autre classe ou objet ne peut y accรฉder.
Si un membre de donnรฉes est privรฉ, cela signifie qu'il n'est accessible qu'au sein de la mรชme classe. Aucune classe extรฉrieure ne peut accรฉder ร un membre de donnรฉes privรฉ ou ร une variable d'une autre classe. Ainsi, dans notre cas, le pirate ne peut pas dรฉposer le montant -100 sur votre compte.
Approche 2: La premiรจre tentative du pirate a รฉchouรฉ. Il essaie ensuite de dรฉposer la somme de -100 en utilisant la mรฉthode ยซ deposit ยป.
Mais lโimplรฉmentation de la mรฉthode vรฉrifie les valeurs nรฉgatives. La deuxiรจme approche รฉchoue donc รฉgalement.
Ainsi, vous nโexposez jamais vos donnรฉes ร un tiers. Ce qui sรฉcurise votre application.
L'ensemble du code peut รชtre considรฉrรฉ comme une capsule, et vous ne pouvez communiquer qu'ร travers les messages. D'oรน le nom d'encapsulation.
Donnรฉes cachรฉes dans Java
Donnรฉes cachรฉes dans Java Masquer les variables d'une classe aux autres classes les rend inaccessibles uniquement via les mรฉthodes de la classe concernรฉe. Cela dissimule les dรฉtails d'implรฉmentation aux utilisateurs. Mais au-delร du simple masquage de donnรฉes, c'est surtout une meilleure gestion des groupes.ping de donnรฉes connexes. Pour parvenir ร un degrรฉ d'encapsulation moindre dans Java, vous pouvez utiliser des modificateurs tels que ยซ protected ยป ou ยซ public ยป. Avec l'encapsulation, les dรฉveloppeurs peuvent facilement modifier une partie du code sans affecter les autres.
Getter et Setter dans Java
Getter et Setter dans Java sont deux mรฉthodes conventionnelles utilisรฉes pour rรฉcupรฉrer et mettre ร jour les valeurs d'une variable. Ils sont principalement utilisรฉs pour crรฉer, modifier, supprimer et visualiser les valeurs des variables. La mรฉthode setter est utilisรฉe pour mettre ร jour les valeurs et la mรฉthode getter est utilisรฉe pour lire ou rรฉcupรฉrer les valeurs. Ils sont รฉgalement connus comme accesseurs et mutateurs.
Le code suivant est un exemple de mรฉthodes getter et setter :
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
Dans l'exemple ci-dessus, la mรฉthode getBalance() est une mรฉthode getter qui lit la valeur de la variable account_balance et la mรฉthode setNumber() est une mรฉthode setter qui dรฉfinit ou met ร jour la valeur de la variable account_number.
Abdostraction vs. Encapsulation
L'encapsulation est souvent mal comprise avec Abdostracproduction. รtudions-
- L'encapsulation concerne davantage le ยซ Comment ยป obtenir une fonctionnalitรฉ
- AbdostracLโรฉvaluation porte davantage sur ยซ ce quโune classe peut faire ยป.
Un exemple simple pour comprendre cette diffรฉrence est celui d'un tรฉlรฉphone portable. La logique complexe du circuit imprimรฉ est encapsulรฉe dans un รฉcran tactile, et l'interface est fournie ร l'utilisateur.tract'en sortir.
Avantages de l'encapsulation dans Java
- L'encapsulation lie les donnรฉes avec ses fonctionnalitรฉs associรฉes. Ici, fonctionnalitรฉs signifient ยซ mรฉthodes ยป et donnรฉes signifient ยซ variables ยป.
- Nous gardons donc les variables et les mรฉthodes au mรชme endroit. Cet endroit est ยซ classe ยป. La classe est la base de l'encapsulation.
- Avec Java Encapsulation, vous pouvez masquer (restreindre l'accรจs) aux donnรฉes membres critiques de votre code, ce qui amรฉliore la sรฉcuritรฉ
- Comme nous l'avons vu prรฉcรฉdemment, si un membre de donnรฉes est dรฉclarรฉ ยซ privรฉ ยป, il n'est accessible qu'au sein de la mรชme classe. Aucune classe extรฉrieure ne peut accรฉder au membre de donnรฉes (variable) d'une autre classe.
- Cependant, si vous devez accรฉder ร ces variables, vous devez utiliser publics ยซ getter ยป et ยซ setter ยป mรฉthodes.






