Java Abstraction- Mastering OOP med Abstraction in Java



Denne artikkelen om Java Abstraction vil hjelpe deg å forstå bruken av Abstract-klasse og Interface og hvordan du kan oppnå det ved hjelp av Abstraction.

I forrige blogg lærte du om i Java. Nå i denne bloggen vil vi forstå en viktig søyle til dvs Java Abstraction hvis hovedfunksjonalitet er å skjule de interne implementeringsdetaljene.

Jeg vil dekke de nevnte emnene i denne artikkelen:





Du kan også gå gjennom denne innspillingen av der du kan forstå emnene på en detaljert måte med eksempler.



Abstraksjon i OOP

Når vi generelt snakker om abstraksjon, er programvarespråket et eksempel på abstraksjon. La oss ta et eksempel og skrive en uttalelse som-

x = y + z

I utsagnet ovenfor legger vi til to variabler som er lagret på to forskjellige steder, og lagrer deretter resultatet på et nytt sted. Så, hva skjer videre? Som du kanskje vet, er det registre, instruksjonssett, programtellere, lagringsenheter osv. Involvert. Når vi refererer til abstraksjon i Java, snakker vi om abstraksjon i og hvordan det oppnås. Konseptet med abstraksjon i OOP starter akkurat i det øyeblikket en klasse blir unnfanget. Abstraksjon brukes overalt i programvare og OOP.



Hva er Java Abstraction?

Abstraksjon er bare kvaliteten på å håndtere ideer i stedet for hendelser. Det handler i utgangspunktet om å skjule de interne detaljene og vise de viktigste tingene for brukeren.

Calling - Java Abstraction -Edureka

Hvis du ser på gifen ovenfor, kan du se når du ringer, vi får muligheten til å enten plukke den opp eller bare avvise den. Men i virkeligheten er det mye kode som går i bakgrunnen. Så her vet du ikke den interne behandlingen av hvordan en samtale genereres, det er skjønnheten i abstraksjonen. Du kan oppnå abstraksjon på to måter:

a) Abstrakt klasse

b) Grensesnitt

La oss forstå disse konseptene mer detaljert.

Abstrakt klasse

Abstrakt klasse inneholder ‘abstrakt’ nøkkelordet. Men hva betyr det egentlig? Hvis du gjør klassen abstrakt, kan den ikke instantieres, det vil si at du ikke kan lage et objekt av en abstrakt klasse. En abstrakt klasse kan også inneholde både abstrakte og konkrete metoder.

Merk: Du kan oppnå 0-100% abstraksjon ved hjelp av en abstrakt klasse.

For å bruke en abstrakt klasse, må du arve den fra basisklassen. Her må du gi implementeringer for de abstrakte metodene, ellers blir det en abstrakt klasse.

La oss se på syntaksen til en abstrakt klasse:

Abstrakt klasse Sport {// abstrakt klasse sport Abstrakt ugyldig hopp () // abstrakt metode}

Grensesnitt

Et grensesnitt i Java er en samling av abstrakte metoder og statiske konstanter. Som du kanskje vet i et grensesnitt, er hver metode offentlig og abstrakt, men den inneholder ingen konstruktører. Sammen med abstraksjon hjelper grensesnittet også til å oppnå flere arv i Java.
Merk: Du kan oppnå 100% abstraksjon ved hjelp av grensesnitt.

I utgangspunktet er Interface en gruppe relaterte metoder med tomme kropper. La oss forstå grensesnitt ved å ta et eksempel på et Shape-grensesnitt med tilhørende metoder.

offentlig grensesnittform {public void draw () public double getArea ()}

Disse metodene må være til stede i enhver ‘form’, ikke sant? Men deres arbeid vil være annerledes.

La oss anta at du vil tegne en form, si sirkel, firkant, rektangel etc. Du vet allerede, hver figur har sine egne dimensjoner som radius, høyde og bredde. Si at jeg vil tegne en sirkel og beregne arealet. Med tanke på det samme har jeg laget to metoder i koden ovenfor, dvs. tegne () og getArea (). Nå, ved hjelp av disse metodene, kan jeg tegne hvilken som helst form og beregne området ved å implementere grensesnittet.

La oss nå se på funksjonaliteten til hvordan du kan implementere dette grensesnittet.
For å implementere dette grensesnittet, vil navnet på klassen din endres til hvilken som helst av figuren, la oss si 'Circle'. Så, for å implementere klassegrensesnittet, vil jeg bruke søkeordet 'implementere':

offentlig klasse Sirkel implementerer figur {privat dobbel radius offentlig sirkel (dobbel r) {this.radius = r} ugyldig tegning () {System.out.println ('Drawing Circle')} offentlig dobbel getArea () {retur 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 ())}}

I eksemplet ovenfor har jeg spesifisert funksjoner til de forskjellige metodene og beregnet areal i en sirkel. Her, når du implementerer et grensesnitt, lar det en klasse bli mer formell om atferden den gir. Du kan også opprette en annen klasse, si 'Rectangle' klasse som kan arve den samme 'interface' formen med forskjellige funksjoner.

Sanntidseksempel på abstraksjon i java

Anta at vi har Sport som grensesnitt. Her vil implementering bli gitt av klasser kalt “Badminton” og “Fotball”. I et reelt scenario vil ikke sluttbrukeren være klar over implementeringsklassen. Derfor kan et objekt fra implementeringsklassen leveres etter fabrikkmetoden. Fabriksmetoden kan brukes til å lage et objekt av implementeringsklassen basert på noen kriterier.
La oss implementere det samme og lage et grensesnitt som heter Sport.java.

public Interface Sport {void play ()} // Nå skal vi lage klasse med navnet 'Badminton' offentlig klasse Badminton implementerer Sport {@Override public void play () {System.out.println ('Playing badminton')}} // La oss deretter lage vår siste klasse 'Fotball' offentlig klasse Fotball implementerer Sport {@ Override public void play () {System.out.println ('Playing football')}

Det siste trinnet er å lage en hovedklasse kalt “SportInterface”.

public SportInterface {public static void main (String args []) {// koden din her}}

Når du kjører programmet ovenfor, vil utgangen være som vist nedenfor:

Spiller badminton ------------------- Spiller fotball

Jeg håper dere er klare med grensesnittet og hvordan dere kan oppnå abstraksjon ved hjelp av det. La oss nå avslutte denne artikkelen med å sammenligne abstraksjon og innkapsling.

foranderlige og uforanderlige gjenstander i java

Abstraksjon vs innkapsling

Abstraksjon Innkapsling
Løser problemet på designnivåLøser problemet på implementeringsnivået
Brukes til å skjule uønskede data og gi relevante resultaterInnkapsling betyr å skjule koden og dataene i en enkelt enhet for å beskytte data fra omverdenen
Ytre layout - brukt i form av designIndre layout - brukes når det gjelder implementering

Jeg håper du forsto forskjellen mellom abstraksjon og innkapsling. Med dette kommer vi til en slutt på Java Abstraction-bloggen. Håper, du syntes det var informativt og det hjalp til med å tilføre din kunnskap verdi. Hvis du ønsker å lære mer om Java, kan du referere til

Nå som du har forstått 'Hva er Java Abstraction', sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'Java Abstraction' -bloggen, så kommer vi tilbake til deg så snart som mulig.