Java apstrakcija - Ovladavanje OOP-om s apstrakcijom na Javi



Ovaj članak o Javnoj apstrakciji pomoći će vam da razumijete upotrebu klase Sažetak i sučelja i kako to postići pomoću Apstrakcije.

U prethodnom blogu ste saznali više o tome na Javi. Sada ćemo na ovom blogu razumjeti još jedan važan stup tj. Java Apstrakcija čija je glavna funkcionalnost skrivanje internih detalja implementacije.

U ovom članku pokrivat ću dolje navedene teme:





Također možete proći kroz ovu snimku gdje teme možete detaljno razumjeti s primjerima.



Apstrakcija u OOP-u

Kada općenito govorimo o apstrakciji, softverski jezik je primjer apstrakcije. Uzmimo primjer i napišimo izjavu kao-

x = y + z

U gornju izjavu dodajemo dvije varijable koje su pohranjene na dva različita mjesta, a zatim spremaju rezultat na novo mjesto. Pa, što se dalje događa? Kao što možda znate, tu su uključeni registri, skupovi uputa, brojači programa, jedinice za pohranu itd. Kada govorimo o apstrakciji u Javi, govorimo o apstrakciji u i kako se to postiže. Koncept apstrakcije u OOP-u započinje upravo u trenutku kada se nastava zamišlja. Apstrakcija se primjenjuje svugdje u softveru i OOP-u.



uloge i odgovornosti administratora linux sustava

Što je Java apstrakcija?

Apstrakcija nije ništa drugo nego kvaliteta suočavanja s idejama, a ne događajima. U osnovi se bavi skrivanjem unutarnjih detalja i prikazivanjem bitnih stvari korisniku.

Pozivanje - Java Apstrakcija -Edureka

Ako pogledate gornji gif, možete vidjeti kada primite poziv, dobit ćemo mogućnost da ga podignete ili jednostavno odbijete. Ali u stvarnosti postoji puno koda koji radi u pozadini. Dakle, ovdje ne znate internu obradu načina generiranja poziva, u tome je ljepota apstrakcije. Apstrakciju možete postići na dva načina:

a) Sažetak

b) Sučelje

Razumijemo ove koncepte detaljnije.

Sažetak klase

Sažetak klase sadrži ključnu riječ 'sažetak'. Ali što to točno znači? Ako klasu učinite apstraktnom, ona se ne može instancirati, tj. Ne možete stvoriti objekt apstraktne klase. Također, apstraktna klasa može sadržavati apstraktne, kao i konkretne metode.

Bilješka: Apstrakcijom možete postići 0-100% apstrakcije pomoću apstraktne klase.

Da biste koristili apstraktnu klasu, morate je naslijediti iz osnovne klase. Ovdje morate osigurati implementacije apstraktnih metoda, inače će to postati apstraktna klasa.

Pogledajmo sintaksu apstraktne klase:

Sažetak klase Sport {// apstraktni razred sporta Sažetak void jump () // sažetak metoda}

Sučelje

Sučelje u Javi zbirka je apstraktnih metoda i statičkih konstanti. Kao što možda znate u sučelju, svaka metoda je javna i apstraktna, ali ne sadrži konstruktor. Uz apstrakciju, sučelje također pomaže postići višestruko nasljeđivanje u Javi.
Bilješka: Možete postići 100% apstrakcije pomoću sučelja.

U osnovi, Interface je skupina povezanih metoda s praznim tijelima. Razumijemo sučelja uzimajući primjer sučelja Shape ’sa srodnim metodama.

oblik javnog sučelja {public void draw () public double getArea ()}

Ove metode moraju biti prisutne u svakom 'obliku', zar ne? Ali njihov će rad biti drugačiji.

Pretpostavimo da želite nacrtati oblik, recimo krug, kvadrat, pravokutnik itd. Već znate, svaki oblik ima svoje dimenzije poput radijusa, visine i širine. Recimo da želim nacrtati krug i izračunati njegovu površinu. S obzirom na isto, stvorio sam dvije metode u gornjem kodu, tj. Draw () i getArea (). Sada, koristeći ove metode, mogu nacrtati bilo koji oblik i izračunati površinu implementirajući njezino sučelje.

Pogledajmo sada funkcionalnost kako možete implementirati ovo sučelje.
Da bi se implementiralo ovo sučelje, naziv vaše klase promijenio bi se u bilo koji oblik, recimo 'Krug'. Dakle, kako bih implementirao sučelje klase, poslužit ću se ključnom riječi ‘Implementiraj’:

javna klasa Circle implementira oblik {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Crtanje kruga')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} test javne klase {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

U gornjem sam primjeru odredio funkcionalnosti različitih metoda i izračunato područje kruga. Ovdje, implementirajući sučelje, omogućuje klasi da postane formalnija u vezi s ponašanjem koje pruža. Također možete stvoriti drugu klasu, recimo klasu 'Pravokutnik' koja može naslijediti isti 'oblik' sučelja s različitim funkcionalnostima.

Primjer apstrakcije u javi u stvarnom vremenu

Pretpostavimo da imamo Sport kao sučelje. Ovdje će provedbu provoditi satovi pod nazivom „Badminton“ i „Nogomet“. U stvarnom scenariju krajnji korisnik neće biti svjestan klase implementacije. Stoga se objekt klase implementacije može pružiti tvorničkom metodom. Tvornička metoda može se koristiti za stvaranje objekta klase implementacije na temelju nekog kriterija.
Primijenimo isto i stvorimo sučelje nazvano Sport.java.

pretvoriti binarni u int java
javno sučelje Sport {void play ()} // Sada ćemo stvoriti klasu pod nazivom 'Badminton' javna klasa Badminton implementira Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Zatim stvorimo našu posljednju klasu 'Nogomet' javne klase Nogomet implementira sport {@Override public void play () {System.out.println ('Playing football')}

Posljednji korak je stvaranje glavne klase pod nazivom 'SportInterface'.

javni SportInterface {public static void main (String args []) {// vaš kod ovdje}}

Kada izvršite gornji program, izlaz će biti kao što je prikazano dolje:

Igranje badmintona ------------------- Igranje nogometa

Nadam se da ste jasni sa sučeljem i kako možete postići apstrakciju pomoću njega. Zaključimo sada ovaj članak usporedbom Abstrakcije i Inkapsulacije.

Apstrakcija vs enkapsulacija

Apstrakcija Kapsulacija
Rješava problem na razini dizajnaRješava problem na razini implementacije
Koristi se za skrivanje neželjenih podataka i davanje relevantnih rezultataInkapsulacija znači skrivanje koda i podataka u jednu jedinicu radi zaštite podataka od vanjskog svijeta
Vanjski izgled - koristi se u smislu dizajnaUnutarnji izgled - koristi se u smislu implementacije

Nadam se da ste razumjeli razliku između Abstrakcije i Inkapsulacije. Ovime smo došli do kraja na blogu Java Abstraction. Nadam se da vam je to bilo informativno i pomoglo je u dodavanju vrijednosti vašem znanju. Ako želite saznati više o Javi, možete se obratiti

Sad kad ste shvatili 'Što je Java apstrakcija', pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo navedite ga u odjeljku za komentare ovog bloga 'Java Abstraction' i javit ćemo vam se što je prije moguće.