Abstraction vs encapsulation : Différence entre abstraction et encapsulation

Publié: 2021-02-09

Table des matières

introduction

Chaque programmeur s'efforce de développer un code soigné et propre, et il doit utiliser une arme appropriée à partir de concepts d'armure ou de POO. L'utilisation de concepts OOP appropriés réduira la complexité et l'entité des objets sera dissociée des autres parties du code. En outre, il améliore la lisibilité et peut être facilement modifié si nécessaire.

De plus, le concept OOP comme l'héritage fournit l'extensibilité du code. Ces concepts sont utiles pour définir des classes abstraites, mettre à jour des codes précédemment implémentés, implémenter une application pour des scénarios réels.

L'abstraction, l'encapsulation sont les concepts fondamentaux de la programmation orientée objet. Et chaque programmeur implémente ces concepts pour un code propre et réutilisable. Mais il existe un nombre considérable de différences entre ces deux concepts, comprenons-les dans cet article.

Dans un premier temps, passons rapidement en revue les concepts d'abstraction et d'encapsulation.

Abstraction

L'abstraction est un processus consistant à masquer les données inutiles et à n'afficher que les données pertinentes. À partir d'un océan de données, nous ne maintenons que la transparence de certaines données pour l'utilisateur. Ce concept important dans la programmation orientée objet réduira la complexité du code et augmentera la lisibilité.

Par exemple, supposons que nous ayons été chargés de créer un portail d'inscription à des cours en ligne et que les champs de données disponibles sont {name, age, current occupation, college name, course name, payment method, sibling's name, marital status, vehicle numéro}.

Après avoir examiné les champs de données disponibles, nous comprendrons que certains des champs ne sont pas nécessaires pour le portail d'inscription aux cours, des champs comme {sibling's name, marital status, vehicle number} ne sont pas requis pour l'inscription aux cours.

Il faut donc être précis et ne choisir que les données pertinentes. Maintenant, les champs nécessaires sont {nom, âge, occupation actuelle, nom du collège, nom du cours, mode de paiement}, cela fait un exemple d'abstraction dans la POO car nous avons escorté des informations sélectionnées à partir de données entières.

Désormais, ces nouvelles données peuvent également être utilisées pour d'autres applications telles que le suivi de l'état du cours, l'enregistrement de l'achèvement du cours, etc. Nous pouvons utiliser les mêmes données sans aucune modification.

Beaucoup de gens sont souvent confus à propos de l'abstraction et de la classe abstraite, alors sont-ils tous les deux liés ?

Une classe abstraite est différente de l'abstraction, les classes/méthodes abstraites sont créées avec l'intention de les implémenter dans une classe ou une sous-classe enfant. Alors que l'abstraction consiste simplement à masquer les données et à afficher uniquement les données pertinentes en utilisant des spécificateurs d'accès tels que public, protected, private.

Encapsulation

L'encapsulation lie les membres de données avec des variables membres. Cela évitera l'accès direct aux variables, car l'accès direct aux variables peut violer la confidentialité et le masquage de l'implémentation ne sera pas possible.

Nous avons peut-être parcouru certaines méthodes classiques en classe comme set et get, où la méthode set est utilisée pour mettre à jour ou allouer une valeur à une variable et la méthode get est utilisée pour lire ou récupérer la valeur d'une variable. Ici, nous pouvons accéder directement aux variables en utilisant l'objet de cette classe, mais si nous voulons rendre une variable privée, nous devons utiliser ces paramètres et obtenir des méthodes.

Le concept est simple, nous allons rendre publiques les méthodes set et get et les variables sont privées. Ainsi, les variables ne sont accessibles que par les méthodes publiques en dehors de la classe puisque les objets privés ne sont pas accessibles en dehors de la classe mais accessibles à l'intérieur de la classe. Ce concept de liaison ou de regroupement de variables avec des méthodes est appelé encapsulation.

Jetons un coup d'œil à un programme Java simple pour mieux comprendre cela.

classe CoursInscription {
private String nom_étudiant ;
chaîne privée nom_cours ;
chaîne publique getName (){
renvoie nom_étudiant ;
}
public void setName (nom de la chaîne){
ce .student_name=nom ;
}
chaîne publique getCours (){
renvoie nom_cours ;
}
public void setCourse (Cours de chaîne){
ce .course_name=cours ;
}
}
classe publique u pGrad {
public static void main (String[] args){
InscriptionCours c= nouvelle InscriptionCours();
c.setName( "mithun" );
c.setCourse( "Science des données" );
System.out.println(c.getName());
System.out.println(c.getCourse());
}
}

Dans le code ci-dessus, nous avons créé une classe CourseRegistration, où les variables membres nom de l'étudiant et nom du cours sont privées, mais nous y accédons dans une autre classe en utilisant les fonctions set name et get name. Dans la classe principale, nous avons créé un objet de type CourseRegistration. Nous initialisons et accédons aux variables membres à l'aide des fonctions set et get.

Maintenant que nous avons vu la définition et l'exemple de l'abstraction, discutons des avantages et des différences entre l'abstraction et l'encapsulation.

Avantages de l'abstraction

  • La confidentialité des données est préservée puisque seules les données pertinentes sont visibles pour l'utilisateur.
  • Réduit la complexité du code et augmente la lisibilité.
  • La classe qui implémente l'abstraction peut être utilisée comme classe parente en les héritant, améliorant ainsi la réutilisabilité et réduisant la duplication.

Avantages de l'encapsulation

  • Cela aide à lier les membres de données avec les fonctions membres.
  • Améliore l'efficacité et la convivialité pour l'analyse des erreurs.
  • Fournit de la flexibilité au programmeur dans le contrôle de l'accessibilité et de la transparence des données.

Différence entre abstraction et encapsulation

Définition

  • L'abstraction cache les détails et l'implémentation du code.
  • L'encapsulation cache les données et contrôle la visibilité du code.

Phase

  • L'abstraction est un processus au niveau de la conception.
  • L'encapsulation est un processus au niveau de la mise en œuvre.

Capacité pivot

  • L'abstraction s'intéresse à ce qu'une instance de classe peut faire, plutôt qu'à l'implémentation de la classe.
  • L'encapsulation aide à la liaison des données et au contrôle du maintien de la transparence des données.

Cas d'utilisation

  • L'abstraction est un processus au niveau de la conception et elle est utilisée pour réduire la complexité au stade de la conception d'un projet.
  • L'encapsulation est un processus au niveau de la mise en œuvre, et il est utilisé pour assurer la confidentialité et maintenir le contrôle sur la transparence des données au stade de la mise en œuvre d'un projet.

Comment mettre en œuvre

  • L'abstraction peut être réalisée à l'aide de classes et d'interfaces en Java.
  • L'encapsulation est également implémentée à l'aide de classes et le contrôle de la confidentialité des données est obtenu en spécifiant des spécificateurs d'accès tels que protected, public, private.

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Nous avons traversé l'importance des concepts OOP, compris la définition de l'abstraction et de l'encapsulation. Nous avons parcouru les exemples d'abstraction et d'encapsulation. Nous avons également examiné les avantages de l'utilisation de concepts POO tels que l'abstraction et l'encapsulation. Et enfin, nous avons traversé la différence entre l'abstraction et l'encapsulation.

Maintenant que vous connaissez la définition et l'implémentation de l'abstraction, de l'encapsulation, essayez de les implémenter dans votre code et essayez de réduire la complexité du code que vous allez écrire à partir de maintenant !

Si vous souhaitez en savoir plus sur Java, le développement full-stack, consultez le programme Executive PG de upGrad & IIIT-B en développement logiciel full-stack, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse, plus de 9 projets. et affectations, statut d'ancien élève de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que l'abstraction dans la programmation orientée objet ?

L'abstraction dans la programmation orientée objet est une technique pour représenter les informations de haut niveau sur un problème en construisant un objet. L'abstraction est implémentée à l'aide de l'interface et l'implémentation de l'interface se fait à l'aide du code réel. L'abstraction est implémentée là où les détails concrets sont cachés aux modules consommateurs en lui fournissant une interface différente. L'abstraction est implémentée pour masquer les détails d'implémentation des détails de bas niveau. Il est également utilisé pour masquer les détails complexes et fournir une interface plus simple à l'utilisateur.

Comment fonctionnent les classes et les objets en programmation ?

Les classes et les objets sont les deux principaux concepts utilisés dans tous les langages de programmation orientés objet. Chaque classe contient un ensemble de variables et de méthodes qu'elle peut utiliser et manipuler. Dans un langage de programmation orienté objet, tous les objets d'un programme ont un type spécifique et les variables et méthodes d'un objet ne peuvent être manipulées que par des méthodes du même type. Dans la plupart des langages orientés objet, la classe est utilisée pour créer un objet et vice versa. Un programme orienté objet est composé d'objets, de procédures et de types de données. Tout dans un programme orienté objet, y compris les données et le code, est un objet.

Quelles sont les différences entre l'encapsulation et l'abstraction ?

L'abstraction est une méthode pour supprimer les détails inutiles dans le code et se concentrer sur les parties pertinentes. Par exemple, au lieu d'écrire une fonction qui multiplie deux nombres, nous pouvons écrire une fonction "multiplier" et l'utiliser pour multiplier n'importe quel nombre par n'importe quel nombre. L'abstraction est une manière de représenter certaines données spécifiques. L'encapsulation est un moyen de masquer la complexité de quelque chose et d'exposer uniquement les parties que vous souhaitez exposer. Par exemple, si vous avez une classe qui a un ou plusieurs champs privés que vous utilisez pour stocker les données, alors vous êtes en encapsulation. La classe contient les données et possède des méthodes qui exposent les données publiques.