Abstraction Java - Maîtriser la POO avec l'abstraction en Java

Cet article sur l'abstraction Java vous aidera à comprendre l'utilisation de la classe abstraite et de l'interface et comment y parvenir en utilisant Abstraction.

Dans le blog précédent, vous avez découvert en Java. Maintenant, dans ce blog, nous allons comprendre un autre pilier important de c'est-à-dire Java Abstraction dont la fonctionnalité principale est de masquer les détails d'implémentation internes.

Je couvrirai les sujets mentionnés ci-dessous dans cet article:





Vous pouvez également parcourir cet enregistrement de où vous pouvez comprendre les sujets de manière détaillée avec des exemples.



Abstraction en POO

Lorsque nous parlons généralement d'abstraction, le langage logiciel est un exemple d'abstraction. Prenons un exemple et écrivons une déclaration comme-

x = y + z

Dans l'instruction ci-dessus, nous ajoutons deux variables qui sont stockées dans deux emplacements différents, puis stockons le résultat dans un nouvel emplacement. Alors, que se passe-t-il ensuite? Comme vous le savez peut-être, il y a des registres, des jeux d'instructions, des compteurs de programme, des unités de stockage, etc., impliqués. Quand on fait référence à l'abstraction en Java, on parle d'abstraction en et comment il est réalisé. Le concept d'abstraction en POO commence juste au moment où une classe est conçue. L'abstraction est appliquée partout dans les logiciels et la POO.



Qu'est-ce que l'abstraction Java?

L'abstraction n'est rien d'autre que la qualité de traiter des idées plutôt que des événements. Il s'agit essentiellement de cacher les détails internes et de montrer les choses essentielles à l'utilisateur.

Appel - Abstraction Java -Edureka

tutoriel de serveur SQL pour les débutants avec des exemples

Si vous regardez le gif ci-dessus, vous pouvez voir que lorsque vous recevez un appel, nous avons la possibilité de le prendre ou de le rejeter. Mais en réalité, il y a beaucoup de code qui s'exécute en arrière-plan. Donc ici, vous ne connaissez pas le traitement interne de la façon dont un appel est généré, c'est la beauté de l'abstraction. Vous pouvez réaliser l'abstraction de deux manières:

a) Classe abstraite

b) Interface

Comprenons ces concepts plus en détail.

Classe abstraite

La classe abstraite contient le mot-clé «abstract». Mais qu'est-ce que cela signifie exactement? Si vous rendez la classe abstraite, elle ne peut pas être instanciée, c'est-à-dire que vous ne pouvez pas créer un objet d'une classe abstraite. En outre, une classe abstraite peut contenir des méthodes abstraites ainsi que des méthodes concrètes.

Remarque: Vous pouvez obtenir une abstraction de 0 à 100% en utilisant une classe abstraite.

Pour utiliser une classe abstraite, vous devez l'hériter de la classe de base. Ici, vous devez fournir des implémentations pour les méthodes abstraites, sinon cela deviendra une classe abstraite.

Examinons la syntaxe d'une classe abstraite:

Classe abstraite Sports {// classe abstraite sports Abstract void jump () // méthode abstraite}

Interface

Une interface en Java est une collection de méthodes abstraites et de constantes statiques. Comme vous le savez peut-être dans une interface, chaque méthode est publique et abstraite mais elle ne contient aucun constructeur. Outre l'abstraction, l'interface permet également d'obtenir un héritage multiple en Java.
Remarque: Vous pouvez atteindre 100% d'abstraction en utilisant des interfaces.

Fondamentalement, Interface est un groupe de méthodes associées avec des corps vides. Comprenons les interfaces en prenant un exemple d’interface de Shape avec ses méthodes associées.

public interface shape {public void draw () public double getArea ()}

Ces méthodes doivent être présentes sous toutes les «formes», non? Mais leur travail sera différent.

Supposons que vous souhaitiez dessiner une forme, par exemple un cercle, un carré, un rectangle, etc. Vous le savez déjà, chaque forme possède ses propres dimensions telles que le rayon, la hauteur et la largeur. Disons que je veux dessiner un cercle et calculer sa superficie. Compte tenu de la même chose, j'ai créé deux méthodes dans le code ci-dessus, à savoir draw () et getArea (). Maintenant, en utilisant ces méthodes, je peux dessiner n'importe quelle forme et calculer la surface en implémentant son interface.

Voyons maintenant les fonctionnalités pour savoir comment mettre en œuvre cette interface.
Pour implémenter cette interface, le nom de votre classe serait remplacé par l’une des formes, disons «Cercle». Donc, pour implémenter l’interface de classe, je vais utiliser le mot-clé ‘implémenter’:

classe publique Circle implémente Shape {double rayon privé public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Zone =' + c.getArea ())}}

Dans l'exemple ci-dessus, j'ai spécifié des fonctionnalités pour les différentes méthodes et l'aire calculée d'un cercle. Ici, en implémentant une interface, cela permet à une classe de devenir plus formelle sur le comportement qu'elle fournit. Vous pouvez également créer une autre classe, par exemple la classe «Rectangle», qui peut hériter de la même «forme» d’interface avec des fonctionnalités différentes.

Exemple d'abstraction en temps réel en java

Supposons que nous ayons le sport comme interface. Ici, la mise en œuvre sera assurée par des classes appelées «Badminton» et «Football». Dans un scénario réel, un utilisateur final ne connaîtra pas la classe d'implémentation. Par conséquent, un objet de la classe d'implémentation peut être fourni par la méthode factory. La méthode Factory peut être utilisée pour créer un objet de classe d'implémentation basé sur un critère.
Implémentons la même chose et créons une interface appelée Sport.java.

public Interface Sport {void play ()} // Maintenant, nous allons créer une classe nommée 'Badminton' Classe publique Badminton implements Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Créons ensuite notre dernière classe publique 'Football'. Football implémente le sport {@Override public void play () {System.out.println ('Jouer au football')}

La dernière étape consiste à créer une classe principale nommée «SportInterface».

public SportInterface {public static void main (String args []) {// votre code ici}}

Lorsque vous exécutez le programme ci-dessus, la sortie sera comme indiqué ci-dessous:

Jouer au badminton ------------------- Jouer au football

J'espère que vous êtes clair avec l'interface et comment vous pouvez réaliser l'abstraction en l'utilisant. Maintenant, terminons cet article en comparant l'abstraction et l'encapsulation.

Abstraction vs encapsulation

Abstraction Encapsulation
Résout le problème au niveau de la conceptionRésout le problème au niveau de l'implémentation
Utilisé pour masquer les données indésirables et donner des résultats pertinentsL'encapsulation signifie cacher le code et les données dans une seule unité pour protéger les données du monde extérieur
Disposition extérieure - utilisée en termes de conceptionDisposition intérieure - utilisée en termes de mise en œuvre

J'espère que vous avez compris la différence entre l'abstraction et l'encapsulation. Avec cela, nous arrivons à une fin sur le blog Java Abstraction. J'espère que vous l'avez trouvé informatif et que cela a contribué à ajouter de la valeur à vos connaissances. Si vous souhaitez en savoir plus sur Java, vous pouvez vous référer au

Maintenant que vous avez compris «Qu'est-ce que l'abstraction Java», consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Java Abstraction» et nous vous répondrons dans les plus brefs délais.