Apprendre l'abstraction de données en Java

Publié: 2021-11-11

Le concept d'abstraction de données peut être expliqué à travers un exemple concret. Prenons un exemple où un conducteur conduisant un véhicule sait que l'application des freins empêchera le véhicule d'avancer. Ainsi, la seule information que connaît le conducteur est qu'il doit immobiliser son véhicule, il applique donc les freins. Mais il ne connaît pas le mécanisme sous-jacent de la façon dont le véhicule s'arrête lorsqu'un frein est appliqué. Ainsi, ce concept peut être comparé au concept d'abstraction de données où seules les informations devant être connues de l'utilisateur sont affichées. Les informations sous-jacentes sont gardées cachées. C'est donc le concept d'abstraction, et lorsqu'il est appliqué dans les données, on parle d'abstraction de données.

La programmation orientée objet fournit des moyens d'utiliser le concept d'abstraction de données. Java fait partie de la programmation orientée objet, suit la fonctionnalité d'abstraction de données. Dans ces langages de programmation, des classes abstraites et des interfaces sont utilisées pour réaliser l'abstraction des données.

Le processus d' abstraction de données en Java est réalisé via les classes abstraites de la classe. Les interfaces sont également utilisées pour l'abstraction de données en dehors des classes abstraites. Le mot-clé "abstract" est utilisé comme modificateur de non-accès pour les méthodes et les classes. Lorsqu'elle est définie avec le mot-clé access, une classe est une classe abstraite dans laquelle la création d'objets n'est pas autorisée. L'accession à la classe abstraite n'est possible que si elle est héritée d'une autre classe. Les méthodes abstraites sont les méthodes qui ne peuvent être utilisées que dans des classes abstraites. Ces méthodes n'ont pas de corps de méthode.

La sous-classe fournit généralement le corps. Les classes abstraites peuvent contenir des méthodes à la fois régulières et abstraites.

Table des matières

Différences entre une classe abstraite et une méthode abstraite

Les différences entre une classe abstraite et une méthode abstraite sont :

1. Les classes abstraites sont les classes déclarées avec le mot clé abstract.

2. Une méthode abstraite est un type de méthode qui est déclaré sans son implémentation.

3. Une classe abstraite n'a pas besoin d'avoir toutes les méthodes de méthode abstraite en elle-même. Il peut également contenir des méthodes qui ne sont pas abstraites.

4. Chaque fois qu'une méthode est définie comme méthode abstraite, elle doit également être définie à nouveau dans la sous-classe. Cela rendra le dépassement obligatoire et rendra également la sous-classe abstraite.

5. Si une classe contient des méthodes abstraites, qu'il s'agisse d'une méthode abstraite ou de plusieurs, elle doit être déclarée abstraite en utilisant le mot clé abstract.

6. Une classe abstraite ne peut contenir aucun objet. Un nouvel opérateur ne peut pas être utilisé pour instancier la classe abstraite.

7. Il y a toujours la présence de constructeurs par défaut dans une classe abstraite. De plus, des constructeurs paramétrés peuvent être présents dans une classe abstraite.

Classe abstraite Java

Le langage de programmation Java implémente l'abstraction à travers des classes abstraites. Une classe abstraite peut être définie comme la classe déclarée avec le mot-clé "abstract" avec une instruction spéciale indiquant que ces classes ne peuvent pas être instanciées. Ces classes peuvent contenir ou non des méthodes abstraites.

La syntaxe d'une classe abstraite en Java est présentée ci-dessous.

Le code ci-dessus est extrait de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

Dans la syntaxe ci-dessus, on peut observer que les méthodes abstraites et non abstraites peuvent être contenues dans une classe abstraite. De plus, le mot-clé "abstract" est placé avant la déclaration de la classe.

En savoir plus sur la classe abstraite java ici

Méthode abstraite Java

Les méthodes abstraites Java sont les méthodes précédées du mot-clé "abstract", mais il n'y a pas d'implémentation des méthodes. Les méthodes abstraites Java sont déclarées dans la classe abstraite Java.

En raison des méthodes abstraites, la classe abstraite Java devient incomplète car les méthodes ne peuvent pas être implémentées. Par conséquent, l'inclusion d'une forme abstraite dans la classe abstraite rend naturellement la classe abstraite incomplète.

Son implémentation dans la sous-classe peut utiliser la méthode abstraite. Cette sous-classe héritera de la classe abstraite et réalisera l'implémentation des méthodes abstraites. La syntaxe générale de la méthode abstraite est

abstract void methodName (parameter_list);

Quelques règles doivent être notées lors de l'écriture de la méthode de résumé

  • Si une classe contient plus d'une méthode abstraite, alors la classe deviendra une classe abstraite.
  • Il ne doit y avoir aucun mot-clé autre que "abstract" lors de la définition de la classe abstraite et des méthodes.

Compte tenu des points ci-dessus, les possibilités suivantes ne sont pas autorisées en Java.

  • final
  • natif abstrait
  • abstrait statique
  • abstrait privé
  • abstrait synchronisé
  • résumé strictfp

Un exemple d'abstraction de données en Java est présenté ci-dessous.

https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Le code ci-dessus est extrait de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

Dans le code ci-dessus, il y a une classe Bank. Il existe une méthode abstraite dans la classe Bank qui est getInterestRate(). Deux autres classes BOI et ICICI, sont déclarées, qui héritent de la classe Bank. Ces classes déclarées héritent de la classe Bank et implémentent donc la méthode getInterestRate() renvoyant les taux d'intérêt.

Un objet de la banque est créé dans la méthode primaire. L'objet de la banque consiste en un objet de classe ICICI qui affiche le taux d'intérêt. Dans l'étape suivante, l'objet de la classe BOI est également créé, qui affiche le taux d'intérêt.

Abstraction des données via l'interface

Les interfaces sont similaires aux classes Java, la seule différence étant qu'il existe des méthodes vides dans une interface. Il peut également être défini comme des classes composées de méthodes abstraites et de constantes statiques. Chaque méthode présente dans l'interface est publique et ne contient aucun constructeur. L'interface est utilisée pour réaliser l'abstraction des données, ainsi que pour effectuer plusieurs héritages en Java.

Quelques fonctionnalités des interfaces en Java sont :

  • Les interfaces peuvent être utilisées pour réaliser une abstraction totale.
  • Une même classe peut utiliser plusieurs interfaces qui conduisent à la réalisation de plusieurs interfaces.
  • Les interfaces permettent d'obtenir un couplage lâche.

La syntaxe de l'interface est illustrée ci-dessous :

La syntaxe ci-dessus est utilisée depuis https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Une interface peut être utilisée via le mot-clé "implémente".

Quelques différences entre les classes abstraites et l'interface sont :

  • Les méthodes abstraites et non abstraites peuvent être contenues dans les classes abstraites. Alors que, dans une interface, seules les méthodes abstraites peuvent être présentes.
  • Les variables finales peuvent ou non être présentes dans les classes abstraites. Dans les interfaces, les variables peuvent être finales en tant que variables par défaut.
  • Le résumé de classe peut avoir des variables non finales, finales, non statiques ou statiques. Alors que, dans une interface, seules les variables statiques et finales peuvent être présentes.
  • La classe abstraite permet l'implémentation d'interfaces. Une classe abstraite ne peut pas être implémentée dans une interface.
  • L'héritage d'une classe abstraite se fait via le mot clé "extends". La mise en œuvre de l'interface se fait via le mot-clé "implémente".
  • La classe abstraite peut implémenter plusieurs interfaces, ou d'autres classes peuvent être étendues par la classe abstraite. Alors qu'une interface ne peut permettre l'implémentation que d'une autre interface.
  • Outre les membres publics, les membres de données protégés et privés sont contenus dans une classe abstraite. Alors que les membres d'une interface sont par défaut publics.

Apprenez des cours 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

L'article a décrit les concepts d'abstraction de données et a répertorié comment l'abstraction de données peut être réalisée en Java. Pour acquérir plus d'expérience dans le langage de programmation Java, vous pouvez consulter le cours de développement logiciel proposé par upGrad. Le cours est conçu pour les professionnels en activité et vous formera à des projets axés sur l'industrie qui développeront les compétences de programmation requises. Plus d'informations peuvent être récupérées via notre site Web. Pour toute information et aide, notre équipe d'assistance peut être contactée.

Qu'est-ce que l'abstraction de données ?

L'abstraction de données est un concept de conception de logiciel. Le problème qu'il résout est de créer des structures de données et des fonctions indépendantes des types de données sur lesquels elles opèrent. Il isole le code des types de données et permet d'utiliser le même code dans plusieurs situations. L'abstraction des données est réalisée lorsque les données représentées par la structure de données et les opérations qui peuvent leur être appliquées sont clairement définies. L'abstraction est essentielle dans le développement de logiciels. C'est l'une des forces fondamentales qui conduisent à des logiciels plus simples, plus petits et plus fiables. L'abstraction de données est une composante essentielle des langages de haut niveau.

Quels sont les avantages de l'abstraction en Java ?

Comment réaliser l'abstraction en Java ?

Les abstractions en Java sont effectuées à l'aide d'interfaces. Pour implémenter l'interface, il faut également fournir l'implémentation. En fait, il n'est pas nécessaire d'hériter de classes pour implémenter l'interface. Les interfaces sont comme n'importe quelle autre classe en Java. Ce qui les rend différents, c'est le fait qu'ils n'ont qu'une seule méthode.