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).

  • (I.e. Dรฉfinition de l'encapsulation : Regroupant les donnรฉes et les mรฉthodes en une seule unitรฉ tout en masquant les dรฉtails d'implรฉmentation internes.
  • ๐Ÿ›ก๏ธ Masquage des donnรฉes : Dรฉclarer les variables comme privรฉes empรชche les personnes extรฉrieures aux classes d'y accรฉder directement.
  • (I.e. Getter et Setter : Les mรฉthodes d'accรจs et de modification publiques lisent et mettent ร  jour les valeurs privรฉes en toute sรฉcuritรฉ.
  • ๐Ÿงฉ Abdostraction vs Encapsulation : L'encapsulation gรจre le ยซ comment ยป, abstraction gรจre ยซ ce que ยป fait une classe.
  • โœ… Avantages : Amรฉliore la sรฉcuritรฉ et la testabilitรฉ, et permet aux dรฉveloppeurs de modifier le code avec un minimum d'effets secondaires.

Encapsulation dans Java

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.

Encapsulation dans Java

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.

Encapsulation dans Java

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.

Encapsulation dans Java

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 ยป.

Encapsulation dans Java

Mais lโ€™implรฉmentation de la mรฉthode vรฉrifie les valeurs nรฉgatives. La deuxiรจme approche รฉchoue donc รฉgalement.

Encapsulation dans Java

Ainsi, vous nโ€™exposez jamais vos donnรฉes ร  un tiers. Ce qui sรฉcurise votre application.

Encapsulation dans Java

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.

FAQ

L'encapsulation se concentre sur la maniรจre dont les fonctionnalitรฉs sont obtenues en liant les donnรฉes et les mรฉthodes et en masquant les dรฉtails internes.traction se concentre sur ce que fait une classe en n'exposant que les fonctionnalitรฉs essentielles et en masquant la complexitรฉ derriรจre une interface simple.

Dรฉclarez les variables de classe comme privรฉes, puis fournissez des mรฉthodes d'accรจs (getters et setters) publiques pour les lire et les modifier. Cela restreint l'accรจs direct et permet ร  la classe de contrรดler l'utilisation de ses donnรฉes.

Les mรฉthodes getter permettent de lire ou de rรฉcupรฉrer la valeur d'une variable privรฉe, tandis que les mรฉthodes setter la modifient. Elles offrent un accรจs contrรดlรฉ et permettent d'ajouter une logique de validation avant toute modification.

L'IA peut gรฉnรฉrer des champs privรฉs avec des accesseurs et des mutateurs correspondants, suggรฉrer des validations dans les mutateurs et restructurer les champs publics en membres encapsulรฉs, ce qui aideping Les dรฉveloppeurs appliquent les meilleures pratiques de la programmation orientรฉe objet rapidement et de maniรจre cohรฉrente.

Oui. L'analyse statique assistรฉe par l'IA peut signaler les champs publics modifiables, l'accรจs direct ร  l'รฉtat interne et les validations manquantes, puis recommander d'encapsuler les donnรฉes avec des mรฉthodes d'accรจs et d'accรจs privรฉes afin d'amรฉliorer la sรฉcuritรฉ.

Rรฉsumez cet article avec :