Abstraction et Encapsulation sont des concepts de base de programmation orientée objet (OOP) qui vous permettent d'implémenter des objets du monde réel dans des programmes et des codes. Bien que les deux vont de pair, ils sont très différents les uns des autres. Bien que chaque méthode soit une encapsulation, c'est aussi une abstraction. En termes simples, lorsque vous associez différentes choses pour créer une entité, vous créez en fait un concept - un abstrait. Bien que les deux soient techniquement indissociables, ils n’ont littéralement rien en commun. Il est presque vrai que chaque encapsulation est une abstraction car ils cachent tous les deux quelque chose, mais ils ont leur juste part de différences..
L'abstraction est un concept de base de la programmation orientée objet qui se concentre uniquement sur les données pertinentes d'un objet et cache tous les détails non pertinents qui peuvent ou non être destinés à un comportement générique ou spécialisé. Il cache les détails de l'arrière-plan et met l'accent sur les points essentiels pour réduire la complexité et augmenter l'efficacité. Fondamentalement, l'abstraction est un outil de programmation permettant de gérer la complexité. L'abstraction se concentre sur les idées plutôt que sur les événements. Il masque les détails au niveau de la conception en fournissant des fonctionnalités aux utilisateurs. L'objet résultant peut également être appelé une abstraction. Le programmeur s'assure que l'entité nommée aura tous les aspects essentiels inclus et aucun des aspects non pertinents..
Prenons un exemple concret d'abstraction. Prenons le cas d'un véhicule, qui dans ce cas est votre véhicule. Un mécanicien essaie de réparer votre voiture ou disons une partie spécifique de votre voiture. Ici, vous êtes l’utilisateur et vous ne voulez pas entrer dans les détails de votre voiture ou quelle partie est en panne. Vous ne vous souciez pas vraiment de ces choses; vous voulez simplement que votre véhicule retrouve son état d'origine sans vous soucier des détails. Donc, vous avez réellement dit au mécanicien ce que vous voulez en séparant la partie mise en œuvre. C'est de l'abstraction. Vous vous êtes concentré sur l'essentiel, à savoir réparer votre voiture plutôt que sur les détails.
L'encapsulation est un autre concept POO qui lie les données et les fonctions dans un seul composant tout en limitant l'accès à certains composants. C'est l'un des principaux concepts fondamentaux de la programmation orientée objet qui englobe les données et les informations dans une seule unité. En termes techniques, encapsulation signifie masquer des attributs pour protéger les variables des accès extérieurs afin que les modifications apportées à une partie d'une application n'affectent pas les autres. Au contraire, en rendant les informations plus ouvertes, vous risquez une mauvaise utilisation des données. Il fournit une intégrité de base aux données en les protégeant du monde extérieur. En termes simples, il cache les détails supplémentaires du monde extérieur.
Prenons un exemple de souris Bluetooth. Il vous suffit de connaître le comportement du périphérique sans vous soucier des détails d'implémentation tels que le type de capteurs dont dispose la souris, avec ou sans fil, etc. Chaque détail décrit la souris, mais quels que soient les détails, il ne s'agit que d'une souris. Vous avez juste besoin d'une interface pour utiliser la souris, qui dans ce cas est le pointeur de la souris. C'est encapsulation.
Bien que les deux soient des concepts fondamentaux liés à la programmation orientée objet et techniquement indissociables, ils présentent encore leurs différences sous de nombreux aspects..
Abstraction | Encapsulation |
Il traite uniquement des détails pertinents en masquant les éléments non pertinents pour réduire la complexité et accroître ainsi l'efficacité.. | Il lie les données et les informations en une seule entité pour protéger les données des sources externes.. |
Il fait référence à l'idée de cacher des données qui ne sont pas nécessaires à des fins de présentation. | Il cache les données et le code afin de limiter les accès indésirables. |
Il se concentre sur quoi plutôt que comment. | Il cache la mécanique interne de la façon dont il fait quelque chose. |
Il cache les détails inutiles au niveau de la conception. | Il cache également les détails, mais au niveau de la mise en œuvre. |
Les informations et les données sont séparées des données pertinentes. | L'information est cachée à l'intérieur d'une capsule pour un accès rapproché. |
Il traite d'idées plutôt que d'événements. | L'idée est de protéger les données du monde extérieur. |
Il est implémenté en utilisant une classe abstraite et une interface. | Il est implémenté à l'aide de modificateurs d'accès protégés, privés et paquet-privés.. |
Bien que les deux soient des concepts de POO liés à la dissimulation de données, ils sont assez différents les uns des autres. L'abstraction concerne également le fait de se cacher comme une encapsulation, mais si la première dissimule la complexité, la seconde conserve les données qu'elle encapsule en contrôlant l'accès à ces dernières. L'abstraction fait référence au concept de ne représenter que les caractéristiques nécessaires en masquant les détails non pertinents pour réduire la complexité d'une application, augmentant ainsi l'efficacité. L'encapsulation, quant à elle, fait référence au concept de masquage de tous les mécanismes internes d'un programme afin de protéger les informations des accès non désirés. Il lie les données et les informations dans un seul composant en limitant l'accès aux autres composants..