Voici les brèves définitions de l'encapsulation et de l'abstraction.
Abstraction:
Le processus d'abstraction en Java est utilisé pour masquer certains détails et n'afficher que les caractéristiques essentielles de l'objet. En d'autres termes, il traite de la vue extérieure d'un objet (interface). Le seul bon exemple que je vois pour cela sur différents sites est l'interface.
Encapsulation:
Il s'agit essentiellement de cacher l'état de l'objet à l'aide de modificateurs tels que privé, public, protégé, etc., nous exposons l'état à des méthodes publiques uniquement si nécessaire.
Ce que nous réalisons avec des modificateurs comme private
, public
cache également les détails inutiles du monde extérieur qui n'est rien d'autre qu'un concept d'abstraction
Donc, à partir de l'explication ci-dessus, on dirait que l'encapsulation fait partie de l'abstraction ou nous pouvons dire que c'est un sous-ensemble de l'abstraction. Mais pourquoi alors le terme d'encapsulation est-il inventé alors que nous ne pourrions le traiter qu'avec l'abstraction? Je suis sûr qu'il devrait y avoir une différence majeure qui les distingue, mais la plupart des documents sur le net disent presque la même chose pour les deux.
Bien que cette question ait été soulevée sur ce forum plus tôt, je la poste à nouveau avec des doutes spécifiques. Certaines réponses indiquent également que l'abstraction est un concept et que l'encapsulation est une mise en œuvre. Mais je n'achète pas cela - Si c'est vrai, alors je peux penser que ces deux concepts différents sont fournis pour nous confondre.
Mise à jour: - Après 5 ans, j'ai trouvé ma propre réponse qui est l'essentiel sur la base des réponses dans cet article et ci-dessous
private
public
, car ils ne fournissent que des informations / données cachées que nous le faisons car il est recommandé de protéger les données de l'instance.
An 'abstraction' (noun) is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.