„Java Abstraction“ - „OOP“ valdymas naudojant „Abstraction“



Šis straipsnis apie „Java Abstraction“ padės suprasti abstrakčios klasės ir sąsajos naudojimą ir kaip ją pasiekti naudojant abstrakciją.

Ankstesniame tinklaraštyje sužinojote apie Java kalba. Dabar šiame tinklaraštyje suprasime dar vieną svarbų ramstį t. y. „Java Abstraction“, kurios pagrindinė funkcija yra paslėpti vidines įgyvendinimo detales.

Šiame straipsnyje aptarsiu žemiau paminėtas temas:



diff tarp hashmap ir hashtable

Taip pat galite peržiūrėti šį įrašą kur galite išsamiai suprasti temas su pavyzdžiais.



Abstrakcija OOP

Kai mes paprastai kalbame apie abstrakciją, programinės įrangos kalba yra abstrakcijos pavyzdys. Paimkime pavyzdį ir parašykime pareiškimą

x = y + z

Pirmiau pateiktame teiginyje pridedame du kintamuosius, kurie yra saugomi dviejose skirtingose ​​vietose, o tada rezultatas saugomas naujoje vietoje. Taigi, kas bus toliau? Kaip galbūt žinote, yra registrų, instrukcijų rinkinių, programų skaitiklių, saugojimo vienetų ir kt. Kai kalbame apie abstrakciją „Java“, kalbame apie abstrakciją „Java“ ir kaip tai pasiekiama. Abstrakcijos samprata OOP prasideda tuo metu, kai klasė pradedama kurti. Abstrakcija taikoma visur programinėje įrangoje ir OOP.



Kas yra „Java Abstraction“?

Abstrakcija yra ne kas kita, o idėjų, o ne įvykių, kokybė. Iš esmės tenka slėpti vidines detales ir parodyti vartotojui esminius dalykus.

Skambinimas - „Java Abstraction“ - „Edureka“

Jei pažvelgsite į pirmiau pateiktą gif, galite pamatyti, kai jums skambina, mes galime pasirinkti, ar jį pasiimti, ar tiesiog atmesti. Tačiau iš tikrųjų fone veikia daugybė kodų. Taigi čia jūs nežinote vidinio apdorojimo, kaip generuojamas skambutis, tai yra abstrakcijos grožis. Galite pasiekti abstrakciją dviem būdais:

a) Santraukos klasė

b) Sąsaja

Supraskime šias sąvokas išsamiau.

Anotacija

Santraukos klasėje yra žodis „abstraktus“. Bet ką tai tiksliai reiškia? Jei klasę padarote abstrakčią, jos negalima akimirksniu sukurti, ty negalima sukurti abstrakčios klasės objekto. Taip pat abstrakčioje klasėje gali būti abstrakčių ir konkrečių metodų.

Pastaba: Naudodami abstrakčią klasę, galite pasiekti 0–100% abstrakcijos.

Norėdami naudoti abstrakčią klasę, turite ją paveldėti iš bazinės klasės. Čia turite pateikti abstrakčių metodų įgyvendinimus, kitaip tai taps abstrakčia klase.

Pažvelkime į abstrakčios klasės sintaksę:

Santraukos klasės sportas {// abstrakčios klasės sportas Santrauka void jump () // abstraktus metodas}

Sąsaja

„Java“ sąsaja yra abstrakčių metodų ir statinių konstantų rinkinys. Kaip žinote sąsajoje, kiekvienas metodas yra viešas ir abstraktus, tačiau jame nėra jokio konstruktoriaus. Be abstrakcijos, sąsaja taip pat padeda pasiekti daugkartinį „Java“ paveldėjimą.
Pastaba: Naudodami sąsajas galite pasiekti 100% abstrakciją.

Iš esmės sąsaja yra susijusių metodų grupė, turinti tuščius kūnus. Supraskime sąsajas, paimdami „Shape“ sąsajos ir susijusių metodų pavyzdį.

viešosios sąsajos forma {public void draw () public double getArea ()}

Šie metodai turi būti kiekvienoje „formoje“, tiesa? Tačiau jų darbas bus kitoks.

Tarkime, kad norite piešti figūrą, tarkim, apskritimą, kvadratą, stačiakampį ir pan. Jūs jau žinote, kad kiekviena forma turi savo matmenis, pvz., Spindulį, aukštį ir plotį. Tarkime, kad noriu nubrėžti apskritimą ir apskaičiuoti jo plotą. Atsižvelgdamas į tą patį, aukščiau pateiktame kode sukūriau du metodus, ty piešti () ir „getArea“ (). Dabar, naudodamasis šiais metodais, galiu nupiešti bet kokią figūrą ir apskaičiuoti plotą, įgyvendindamas jo sąsają.

Dabar panagrinėkime funkcionalumą, kaip galite įdiegti šią sąsają.
Norint įdiegti šią sąsają, jūsų klasės pavadinimas pasikeistų į bet kurią „Shape“, tarkime, „Ratas“. Taigi, norėdamas įdiegti klasės sąsają, naudosiu raktinį žodį „įgyvendinti“:

public class Circle įgyvendina Shape {privatus dvigubas spindulys public Circle (dvigubas r) {this.radius = r} negaliojantis piešimas () {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 ('Plotas =' + c.getArea ())}}

Pirmiau pateiktame pavyzdyje nurodžiau skirtingų metodų ir apskaičiuoto apskritimo ploto funkcionalumą. Čia, diegiant sąsają, tai leidžia klasei tapti oficialesniu jos elgsena. Taip pat galite sukurti kitą klasę, sakykime „Stačiakampio“ klasę, kuri gali paveldėti tą pačią sąsajos „formą“ su skirtingomis funkcijomis.

Realaus laiko abstrakcijos Java pavyzdys

Tarkime, kad sąsają turime „Sport“. Čia įgyvendinimą suteiks „Badmintono“ ir „Futbolo“ klasės. Realiame scenarijuje galutinis vartotojas nežinos apie įgyvendinimo klasę. Taigi diegimo klasės objektą galima pateikti gamykliniu metodu. Gamyklinis metodas gali būti naudojamas kuriant įgyvendinimo klasės objektą pagal kokį nors kriterijų.
Įgyvendinkime tą patį ir sukurkime sąsają, vadinamą Sport.java.

viešosios sąsajos sportas {void play ()} // Dabar sukursime klasę pavadinimu „Badmintonas“. viešoji klasė Badmintonas įgyvendina sportą {@Override public void play () {System.out.println ('Playing badminton')}} // Toliau sukurkime savo paskutinės klasės „Futbolas“ viešąją klasę Futbolas įgyvendina sportą {@Paisykite viešą tuštumą () {System.out.println ('Žaidžia futbolą')}

Paskutinis žingsnis - sukurti pagrindinę klasę pavadinimu „SportInterface“.

public SportInterface {public static void main (String args []) {// čia jūsų kodas}}

Kai vykdysite pirmiau nurodytą programą, išvestis bus tokia, kaip parodyta žemiau:

Žaisti badmintoną ------------------- Žaisti futbolą

Tikiuosi, kad jums, vaikinai, yra aiški sąsaja ir kaip ją naudojant galima pasiekti abstrakciją. Užbaikime šį straipsnį palyginę abstrakciją ir inkapsuliaciją.

Abstrakcija ir inkapsuliacija

Abstrakcija Inkapsuliacija
Išsprendžia projektavimo lygio problemąIšsprendžia problemą įgyvendinimo lygiu
Naudojamas paslėpti nepageidaujamus duomenis ir pateikti atitinkamus rezultatusKapsuliavimas reiškia kodo ir duomenų slėpimą į vieną vienetą, kad apsaugotumėte duomenis nuo išorinio pasaulio
Išorinis išdėstymas - naudojamas dizaino požiūriuVidinis išdėstymas - naudojamas įgyvendinant

Tikiuosi supratote skirtumą tarp abstrakcijos ir inkapsuliacijos. Tuo mes baigėme „Java Abstraction“ tinklaraštį. Tikiuosi, kad jums tai pasirodė informatyvu ir tai padėjo padidinti jūsų žinių vertę. Jei norite sužinoti daugiau apie „Java“, galite kreiptis į

Dabar, kai supratote „Kas yra„ Java “abstrakcija“, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žvalgytis į „Java“ programavimą ir išmokyti pagrindinių bei pažangių „Java“ koncepcijų kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio „Java Abstraction“ tinklaraščio komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis.