Java Abstraction - Padroneggiare OOP con Abstraction in Java

Questo articolo su Java Abstraction ti aiuterà a capire l'uso della classe Abstract e dell'interfaccia e come ottenerlo usando Abstraction.

Nel blog precedente, hai imparato a conoscere in Java. Ora in questo blog, capiremo un altro importante pilastro di cioè Java Abstraction la cui funzionalità principale è nascondere i dettagli dell'implementazione interna.

Tratterò gli argomenti di seguito menzionati in questo articolo:





Puoi anche passare attraverso questa registrazione di dove puoi capire gli argomenti in modo dettagliato con esempi.



Astrazione in OOP

Quando parliamo generalmente di astrazione, il linguaggio del software è un esempio di astrazione. Facciamo un esempio e scriviamo una dichiarazione come-

x = y + z

Nell'affermazione precedente, stiamo aggiungendo due variabili che sono memorizzate in due posizioni diverse e quindi memorizziamo il risultato in una nuova posizione. Allora, cosa succede dopo? Come forse saprai, sono coinvolti registri, set di istruzioni, contatori di programmi, unità di memoria, ecc. Quando ci riferiamo all'astrazione in Java, stiamo parlando dell'astrazione in e come si ottiene. Il concetto di astrazione in OOP inizia proprio nel momento in cui viene concepita una classe. L'astrazione viene applicata ovunque nel software e nell'OOP.



Cos'è l'astrazione Java?

L'astrazione non è altro che la qualità del trattare con idee piuttosto che con eventi. Fondamentalmente si occupa di nascondere i dettagli interni e mostrare le cose essenziali all'utente.

Calling - Java Abstraction -Edureka

Se guardi la gif sopra, puoi vedere quando ricevi una chiamata, abbiamo un'opzione per prenderla o rifiutarla. Ma in realtà c'è molto codice che viene eseguito in background. Quindi qui, non conosci l'elaborazione interna di come viene generata una chiamata, questo è il bello dell'astrazione. Puoi ottenere l'astrazione in due modi:

a) Classe astratta

b) Interfaccia

Comprendiamo questi concetti in modo più dettagliato.

Classe astratta

La classe Abstract contiene la parola chiave 'abstract'. Ma cosa significa esattamente? Se rendi astratta la classe, non può essere istanziata, ovvero non puoi creare un oggetto di una classe astratta. Inoltre, una classe astratta può contenere metodi sia astratti che concreti.

Nota: Puoi ottenere un'astrazione dello 0-100% usando una classe astratta.

Per usare una classe astratta, devi ereditarla dalla classe base. Qui, devi fornire implementazioni per i metodi astratti, altrimenti diventerà una classe astratta.

Diamo un'occhiata alla sintassi di una classe astratta:

Sport di classe astratta {// sport di classe astratta Abstract void jump () // metodo astratto}

Interfaccia

Un'interfaccia in Java è una raccolta di metodi astratti e costanti statiche. Come forse saprai in un'interfaccia, ogni metodo è pubblico e astratto ma non contiene alcun costruttore. Insieme all'astrazione, l'interfaccia aiuta anche a ottenere l'ereditarietà multipla in Java.
Nota: Puoi ottenere il 100% di astrazione usando le interfacce.

Fondamentalmente, Interface è un gruppo di metodi correlati con corpi vuoti. Cerchiamo di comprendere le interfacce prendendo un esempio dell'interfaccia di una forma con i suoi metodi correlati.

forma dell'interfaccia pubblica {public void draw () public double getArea ()}

Questi metodi devono essere presenti in ogni 'forma', giusto? Ma il loro lavoro sarà diverso.

Supponiamo che tu voglia disegnare una forma, diciamo cerchio, quadrato, rettangolo ecc. Sai già, ogni forma possiede le proprie dimensioni come raggio, altezza e larghezza. Diciamo che voglio disegnare un cerchio e calcolare la sua area. Considerando lo stesso, ho creato due metodi nel codice sopra, ovvero draw () e getArea (). Ora, utilizzando questi metodi, posso disegnare qualsiasi forma e calcolare l'area implementando la sua interfaccia.

cosa sono gli spazi dei nomi in c ++

Ora, esaminiamo la funzionalità su come implementare questa interfaccia.
Per implementare questa interfaccia, il nome della tua classe cambierebbe in una qualsiasi delle Shape, diciamo 'Circle'. Quindi, per implementare l'interfaccia della classe, userò la parola chiave 'implement':

public class Circle implementa Shape {private double radius 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 ('Area =' + c.getArea ())}}

Nell'esempio sopra, ho specificato le funzionalità per i diversi metodi e l'area calcolata di un cerchio. In questo caso, implementando un'interfaccia, consente a una classe di diventare più formale riguardo al comportamento che fornisce. Puoi anche creare un'altra classe, ad esempio la classe 'Rettangolo', che può ereditare la stessa 'forma' dell'interfaccia con funzionalità diverse.

Esempio in tempo reale di astrazione in java

Supponiamo di avere lo sport come interfaccia. Qui, l'implementazione sarà fornita da classi chiamate 'Badminton' e 'Football'. In uno scenario reale, un utente finale non sarà a conoscenza della classe di implementazione. Quindi, un oggetto della classe di implementazione può essere fornito dal metodo factory. Il metodo Factory può essere utilizzato per creare un oggetto di classe di implementazione basato su alcuni criteri.
Implementiamo lo stesso e creiamo un'interfaccia chiamata Sport.java.

public Interface Sport {void play ()} // Ora creeremo una classe denominata 'Badminton' public class Badminton implementa lo sport {@Override public void play () {System.out.println ('Playing badminton')}} // Quindi creiamo la nostra ultima classe 'Football' public class Football implementa lo sport {@Override public void play () {System.out.println ('Playing football')}

L'ultimo passaggio consiste nel creare una classe principale denominata 'SportInterface'.

public SportInterface {public static void main (String args []) {// your code here}}

Quando esegui il programma sopra, l'output sarà come mostrato di seguito:

Giocare a badminton ------------------- Giocare a calcio

Spero che abbiate chiaro l'interfaccia e come potete ottenere l'astrazione usandola. Ora, concludiamo questo articolo confrontando l'astrazione e l'incapsulamento.

Astrazione vs incapsulamento

Astrazione Incapsulamento
Risolve il problema a livello di progettazioneRisolve il problema a livello di implementazione
Utilizzato per nascondere dati indesiderati e fornire risultati pertinentiIncapsulamento significa nascondere il codice e i dati in una singola unità per proteggere i dati dal mondo esterno
Layout esterno: utilizzato in termini di designLayout interno: utilizzato in termini di implementazione

Spero che tu abbia capito la differenza tra astrazione e incapsulamento. Con questo, arriviamo alla fine sul blog Java Abstraction. Spero, lo hai trovato informativo e ti ha aiutato ad aggiungere valore alla tua conoscenza. Se desideri saperne di più su Java, puoi fare riferimento al

Ora che hai capito 'Cos'è Java Abstraction', controlla il file da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti sia sui concetti di base che avanzati su Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Java Abstraction' e ti risponderemo il prima possibile.