Abstracció de Java: domini de la POO amb abstracció a Java

Aquest article sobre Java Abstraction us ajudarà a entendre l’ús de la classe abstracta i la interfície i com aconseguir-ho mitjançant Abstraction.

Al bloc anterior, en teníeu coneixement a Java. Ara, en aquest bloc, entendrem un pilar més important de és a dir, Abstracció de Java la principal funcionalitat de la qual és ocultar els detalls interns de la implementació.

En aquest article tractaré els temes esmentats a continuació:





També podeu fer aquest enregistrament de on podeu entendre els temes de manera detallada amb exemples.



Abstracció en POO

Quan generalment parlem d'abstracció, el llenguatge del programari és un exemple d'abstracció. Prenem un exemple i escrivim una afirmació com:

x = y + z

A la declaració anterior, afegim dues variables que s’emmagatzemen en dues ubicacions diferents i, a continuació, emmagatzemem el resultat en una ubicació nova. Llavors, què passa després? Com podríeu saber, hi ha registres, conjunts d’instruccions, comptadors de programes, unitats d’emmagatzematge, etc. Quan ens referim a l'abstracció a Java, parlem d'abstracció a i com s’aconsegueix. El concepte d’abstracció a POO comença just en el moment en què es concep una classe. L’abstracció s’aplica a tot arreu en programari i POO.



Què és Java Abstraction?

L’abstracció no és res més que la qualitat de tractar les idees més que els esdeveniments. Bàsicament tracta d’ocultar els detalls interns i mostrar les coses essencials a l’usuari.

Trucades - Java Abstraction -Edureka

Si mireu el gif anterior, podeu veure quan rebeu una trucada, tenim una opció per recollir-la o simplement rebutjar-la. Però, en realitat, hi ha un munt de codi que s’executa en segon pla. Per tant, aquí no coneixeu el processament intern de com es genera una trucada, això és la bellesa de l’abstracció. Podeu aconseguir l'abstracció de dues maneres:

a) Classe de Resum

b) Interfície

Comprenguem aquests conceptes amb més detall.

classe anònima a Java]

Classe de Resum

La classe Resum conté la paraula clau 'resum'. Però, què significa exactament? Si feu que la classe sigui abstracta, no es podrà crear una instància, és a dir, no es pot crear un objecte d’una classe abstracta. A més, una classe abstracta pot contenir mètodes abstractes i concrets.

Nota: Podeu aconseguir un 0-100% d'abstracció mitjançant una classe abstracta.

Per utilitzar una classe abstracta, l’heu d’heretar de la classe base. Aquí heu de proporcionar implementacions per als mètodes abstractes, en cas contrari es convertirà en una classe abstracta.

Vegem la sintaxi d’una classe abstracta:

Sports de classe abstracta {// sports de classe abstracta Abstract void jump () // mètode abstracte}

Interfície

Una interfície a Java és una col·lecció de mètodes abstractes i constants estàtiques. Com podríeu saber en una interfície, cada mètode és públic i abstracte, però no conté cap constructor. Juntament amb l'abstracció, la interfície també ajuda a aconseguir una herència múltiple a Java.
Nota: Podeu aconseguir un 100% d’abstracció mitjançant interfícies.

Bàsicament, Interface és un grup de mètodes relacionats amb cossos buits. Entenem les interfícies prenent un exemple d'una interfície de forma amb els seus mètodes relacionats.

forma d'interfície pública {public void draw () public doble getArea ()}

Aquests mètodes han d’estar presents en totes les ‘formes’, oi? Però el seu treball serà diferent.

Suposem que voleu dibuixar una forma, per exemple, cercle, quadrat, rectangle, etc. Ja ho sabeu, cada forma té les seves pròpies dimensions, com ara el radi, l'alçada i l'amplada. Digueu que vull dibuixar un cercle i calcular-ne l’àrea. Tenint en compte el mateix, he creat dos mètodes en el codi anterior, és a dir, draw () i getArea (). Ara, mitjançant aquests mètodes, puc dibuixar qualsevol forma i calcular l'àrea implementant la seva interfície.

Ara, examinem la funcionalitat de com podeu implementar aquesta interfície.
Per implementar aquesta interfície, el nom de la vostra classe canviaria a qualsevol de la forma, diguem 'Cercle'. Per tant, per implementar la interfície de la classe, faré servir la paraula clau 'implementar':

public class Circle implementa la forma {cercle privat de doble radi públic (doble r) {this.radius = r} void draw () {System.out.println ('Circle 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 []) {Forma c = nou cercle (8) c.draw () Sistema. out.println ('Àrea =' + c.getArea ())}}

A l'exemple anterior, he especificat funcionalitats als diferents mètodes i àrees calculades d'un cercle. Aquí, en implementar una interfície, permet a una classe ser més formal sobre el comportament que proporciona. També podeu crear una altra classe, per exemple, una classe 'Rectangle' que pot heretar la mateixa 'forma' de la interfície amb diferents funcionalitats.

Exemple en temps real d'abstracció a Java

Suposem que tenim l’esport com a interfície. Aquí, la implementació serà proporcionada per classes anomenades 'Bàdminton' i 'Futbol'. En un escenari real, un usuari final no serà conscient de la classe d'implementació. Per tant, es pot proporcionar un objecte de la classe d'implementació mitjançant el mètode de fàbrica. El mètode de fàbrica es pot utilitzar per crear un objecte de classe d'implementació basat en algun criteri.
Implantem el mateix i creem una interfície anomenada Sport.java.

public Interface Sport {void play ()} // Ara, crearem una classe anomenada 'Badminton' de classe pública Badminton implementa Sport {@Override public void play () {System.out.println ('Playing badminton')}} // A continuació, creem la nostra última classe de 'futbol' de classe pública El futbol implementa l'esport {@Override public void play () {System.out.println ('Jugar a futbol')}

L'últim pas és crear una classe principal anomenada 'SportInterface'.

public SportInterface {public static void main (String args []) {// el vostre codi aquí}}

Quan executeu el programa anterior, la sortida serà la següent:

Jugar a bàdminton ------------------- Jugar a futbol

passa per valor i passa per referència a java

Espero que tingueu clar la interfície i com podeu aconseguir l'abstracció utilitzant-la. Ara, concloguem aquest article comparant Abstracció i Encapsulació.

Abstracció vs encapsulació

Abstracció Encapsulació
Resol el problema a nivell de dissenyResol el problema en el nivell d'implementació
S’utilitza per amagar dades no desitjades i donar resultats rellevantsL’encapsulació significa amagar el codi i les dades en una sola unitat per protegir les dades del món exterior
Disseny exterior: s’utilitza en termes de dissenyDisseny interior: s'utilitza en termes d'implementació

Espero que hagueu entès la diferència entre l’abstracció i l’encapsulació. Amb això, arribem al final del bloc Java Abstraction. Espero que el trobeu informatiu i us ajudi a afegir valor al vostre coneixement. Si voleu obtenir més informació sobre Java, podeu consultar el document

Ara que heu entès 'Què és Java Abstraction', consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc “Java Abstraction” i us respondrem el més aviat possible.