Java abstraktsioon - OOP-i valdamine abstraktsiooniga Java-s



See Java abstraktsiooni artikkel aitab teil mõista abstraktse klassi ja liidese kasutamist ning kuidas seda abstraktsuse abil saavutada.

Eelmises ajaveebis saite teada Java keeles. Selles blogis saame aru veel ühest olulisest sambast st Java Abstraction, mille peamine funktsioon on sisemise rakenduse üksikasjade peitmine.

Käsitlen allpool mainitud teemasid selles artiklis:





Võite ka selle salvestuse läbi vaadata kus saate teemadest üksikasjalikult aru saada koos näidetega.



Abstraktsioon OOP-s

Kui me üldiselt räägime abstraktsioonist, on abstraktsiooni näide tarkvarakeel. Võtame näite ja kirjutame avalduse

x = y + z

Ülaltoodud avalduses lisame kaks muutujat, mis on salvestatud kahte erinevasse kohta, ja seejärel salvestame tulemuse uude asukohta. Mis siis edasi saab? Nagu teate, on kaasatud registrid, käskude komplektid, programmiloendurid, salvestusüksused jne. Kui viidata abstraktsioonile Java-s, räägime abstraktsioonist in ja kuidas see saavutatakse. Abstraktsiooni mõiste algab OOP-s just sel hetkel, kui klass on eostamisel. Abstraktsiooni rakendatakse kõikjal tarkvaras ja OOP-s.



lingitud loend c-programmis

Mis on Java abstraktsioon?

Abstraktsioon pole midagi muud kui ideede, mitte sündmuste käsitlemise kvaliteet. Põhimõtteliselt tegeleb see sisemiste detailide varjamise ja kasutajale oluliste asjade näitamisega.

Helistamine - Java abstraktsioon -Edureka

Kui vaatate ülaltoodud gif-i, näete kõne saabumisel, saame võimaluse kas võtta see vastu või lihtsalt tagasi lükata. Kuid tegelikult on taustal palju koode. Nii et siin ei tea te kõne genereerimise sisemist töötlemist, see on abstraktsiooni ilu. Abstraktsiooni saate saavutada kahel viisil:

a) Abstraktne klass

mis on javascripti sündmus

b) Liides

Mõistame neid mõisteid üksikasjalikumalt.

Abstraktne klass

Abstraktne klass sisaldab märksõna abstraktne. Aga mida see täpselt tähendab? Kui teete klassi abstraktseks, ei saa seda instantsida, st te ei saa luua abstraktse klassi objekti. Samuti võib abstraktne klass sisaldada nii abstraktseid kui ka konkreetseid meetodeid.

Märge: Abstraktse klassi abil saate saavutada 0–100% abstraktsiooni.

Abstraktse klassi kasutamiseks peate selle pärima baasklassilt. Siin peate pakkuma abstraktsete meetodite rakendused, muidu saab sellest abstraktne klass.

Vaatame abstraktse klassi süntaksit:

Abstraktne klassi sport {// abstraktne klassi sport Abstraktne void jump () // abstraktne meetod}

Liides

Java liides on abstraktsete meetodite ja staatiliste konstantide kogum. Nagu liideses võib-olla teate, on iga meetod avalik ja abstraktne, kuid see ei sisalda ühtegi konstruktorit. Koos abstraktsiooniga aitab liides saavutada ka Java mitmekordse pärimise.
Märge: Liideste abil saate saavutada 100% -lise abstraktsiooni.

Põhimõtteliselt on Interface tühjade kehadega seotud meetodite rühm. Mõistame liideseid, võttes näite Shape ’liidesest ja sellega seotud meetoditest.

avaliku liidese kuju {public void draw () public double getArea ()}

Need meetodid peavad olema igas vormis olemas, eks? Kuid nende töö saab olema erinev.

Oletame, et soovite joonistada kuju, näiteks ringi, ruudu, ristküliku jne. Te juba teate, et igal kujundil on oma mõõtmed, näiteks raadius, kõrgus ja laius. Oletame, et tahan joonistada ringi ja arvutada selle pindala. Arvestades sama, olen ülaltoodud koodis loonud kaks meetodit, st joonistamine () ja getArea (). Nüüd saan neid meetodeid kasutades joonistada mis tahes kuju ja arvutada ala, rakendades selle liidese.

Vaatame nüüd funktsionaalsust, kuidas seda liidest rakendada.
Selle liidese rakendamiseks muutuks teie klassi nimi mis tahes kujundiks, ütleme näiteks 'Ring'. Nii et klassi liidese juurutamiseks kasutan märksõna „juuruta”:

public class Circle rakendab kuju {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 ())}}

Ülaltoodud näites olen täpsustanud funktsionaalsused erinevatele meetoditele ja ringi arvutatud alale. Siin võimaldab see liidese rakendamisel klassil muutuda selle käitumise suhtes ametlikumaks. Võite luua ka teise klassi, näiteks klassi Rectangle, mis võib pärida sama liidese kuju erinevate funktsioonidega.

Reaalajas näide abstraktsioonist javas

Oletame, et meil on liidesena Sport. Siin pakuvad rakendust klassid nimega “Sulgpall” ja “Jalgpall”. Reaalses stsenaariumis ei tea lõppkasutaja rakendusklassi. Seega saab juurutusklassi objekti pakkuda tehase meetodil. Tehasemeetodit saab kasutada mõne kriteeriumi alusel rakendusklassi objekti loomiseks.
Rakendame sama ja loome liidese nimega Sport.java.

public Interface Sport {void play ()} // Nüüd loome klassi nimega 'Sulgpall'. avalik klass Sulgpall rakendab Sporti {@Override public void play () {System.out.println ('Sulgpalli mängimine')}} // Järgmisena loome oma viimase klassi „Jalgpall” avaliku klassi Jalgpall rakendab sporti {@Orride public void play () {System.out.println ('Jalgpalli mängimine')}

Viimane samm on luua põhiklass nimega “SportInterface”.

public SportInterface {public static void main (String args []) {// teie kood siin}}

Ülaltoodud programmi käivitamisel on väljund järgmine:

Sulgpalli mängimine ------------------- Jalgpalli mängimine

Loodan, et teil on liidesega selge ja kuidas saate selle abil abstraktsiooni saavutada. Nüüd lõpetame selle artikli, võttes aluseks abstraktsiooni ja kapseldamise.

millal seda java kasutada

Abstraktsioon vs kapseldamine

Abstraktsioon Kapseldamine
Lahendab probleemi disaini tasemelLahendab probleemi rakendamise tasemel
Kasutatakse soovimatute andmete peitmiseks ja asjakohaste tulemuste saamiseksKapseldamine tähendab koodi ja andmete peitmist ühte üksusesse, et kaitsta andmeid välismaailma eest
Väline paigutus - kasutatakse kujunduse osasSisemine paigutus - kasutatakse rakendamise mõttes

Loodan, et saite aru abstraktsiooni ja kapseldamise erinevusest. Sellega jõuame Java Abstraction ajaveebi lõpule. Loodetavasti leidsite, et see on informatiivne ja aitas teie teadmistele väärtust lisada. Kui soovite Java kohta rohkem teada saada, võite viidata

Nüüd, kui olete aru saanud 'Mis on Java abstraktsioon', vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle 'Java Abstraction' ajaveebi kommentaaride osas ja võtame teiega ühendust niipea kui võimalik.