Java Abstraction- Mastering OOP na may Abstraction sa Java



Ang artikulong ito sa Java Abstraction ay makakatulong sa iyo na maunawaan ang paggamit ng Abstract class at Interface at kung paano ito makamit gamit ang Abstraction.

Sa nakaraang blog, nalaman mo ang tungkol sa sa Java. Ngayon sa blog na ito, mauunawaan natin ang isa pang mahalagang haligi ng ie ang Java Abstraction na ang pangunahing pagpapaandar ay upang itago ang mga panloob na detalye ng pagpapatupad.

Saklaw ko ang mga nabanggit na paksa sa artikulong ito:





Maaari mo ring daanan ang recording na ito ng kung saan maaari mong maunawaan ang mga paksa sa isang detalyadong pamamaraan na may mga halimbawa.



Abstraction sa OOP

Kapag sa pangkalahatan ay pinag-uusapan natin ang tungkol sa abstraction ang wika ng software ay isang halimbawa ng Abstraction. Kumuha tayo ng isang halimbawa at magsulat ng isang pahayag bilang-

x = y + z

halimbawa ng pag-uusap sa remote na paraan ng java

Sa pahayag sa itaas, nagdaragdag kami ng dalawang variable na nakaimbak sa dalawang magkakaibang lokasyon at pagkatapos ay itatago ang resulta sa isang bagong lokasyon. Kaya, ano ang susunod na mangyayari? Tulad ng maaari mong malaman, may mga rehistro, mga hanay ng pagtuturo, mga counter ng programa, mga yunit ng imbakan, atbp. Kapag tinukoy namin ang abstraction sa Java, pinag-uusapan natin ang tungkol sa abstraction sa at kung paano ito nakakamit. Ang konsepto ng abstraction sa OOP ay nagsisimula mismo sa sandaling ito kapag ang isang klase ay naglilihi. Ang abstraction ay inilalapat saanman sa software at OOP.



Ano ang Java Abstraction?

Ang abstraction ay walang iba kundi ang kalidad ng pagharap sa mga ideya kaysa sa mga kaganapan. Karaniwan itong nakikipag-usap sa pagtatago ng panloob na mga detalye at pagpapakita ng mahahalagang bagay sa gumagamit.

Pagtawag - Java Abstraction -Edureka

Kung titingnan mo ang nasa itaas na gif, maaari mong makita kapag tumawag ka, nakakakuha kami ng isang pagpipilian upang kunin ito o tanggihan lamang ito. Ngunit sa katotohanan, maraming code na tumatakbo sa background. Kaya dito, hindi mo alam ang panloob na pagproseso kung paano nabuo ang isang tawag, iyon ang kagandahan ng abstraction. Maaari mong makamit ang abstraction sa dalawang paraan:

a) Klase na Abstract

b) Interface

Unawain natin nang mas detalyado ang mga konseptong ito.

Abstract Class

Naglalaman ang klase ng abstract ng keyword na 'abstract'. Ngunit ano nga ba ang eksaktong kahulugan nito? Kung gagawin mo ang klase na mahirap unawain, hindi ito maaaring maitaguyod, ibig sabihin hindi ka makakalikha ng isang bagay ng isang abstract na klase. Gayundin, ang isang abstract na klase ay maaaring maglaman ng abstract pati na rin ang kongkretong pamamaraan.

Tandaan: Maaari mong makamit ang 0-100% abstraction gamit ang isang abstract na klase.

Upang magamit ang isang mahirap unawain na klase, kailangan mong manahin ito mula sa batayang klase. Dito, kailangan mong magbigay ng mga pagpapatupad para sa mga abstract na pamamaraan, kung hindi man ay magiging isang mahirap unawain na klase.

Tingnan natin ang syntax ng isang abstract na klase:

Abstract class Sports {// abstract class sports Abstract void jump () // abstract method}

Interface

Ang isang interface sa Java ay isang koleksyon ng mga abstract na pamamaraan at mga static Constant. Tulad ng maaaring alam mo sa isang interface, ang bawat pamamaraan ay pampubliko at abstract ngunit wala itong naglalaman ng anumang tagapagbuo. Kasabay ng abstraction, tumutulong din ang interface upang makamit ang maraming pamana sa Java.
Tandaan: Maaari mong makamit ang 100% na abstraction gamit ang mga interface.

paano gumagana ang tostring sa java

Talaga, ang Interface ay isang pangkat ng mga kaugnay na pamamaraan na may mga walang laman na katawan. Ipaalam sa amin na maunawaan ang mga interface sa pamamagitan ng pagkuha ng isang halimbawa ng interface ng isang Hugis kasama ang mga kaugnay na pamamaraan.

pampublikong interface na hugis {public void draw () public double getArea ()}

Ang mga pamamaraang ito ay kailangang naroroon sa bawat 'hugis', tama ba? Ngunit magkakaiba ang kanilang pagtatrabaho.

Ipagpalagay natin na nais mong gumuhit ng isang hugis, sabihin na bilog, parisukat, rektanggulo atbp Alam mo na, ang bawat hugis ay nagtataglay ng sarili nitong mga sukat tulad ng radius, taas, at lapad. Sabihin na nais kong gumuhit ng isang bilog at kalkulahin ang lugar nito. Isinasaalang-alang ang pareho, lumikha ako ng dalawang pamamaraan sa itaas na code ibig sabihin gumuhit () at getArea (). Ngayon, gamit ang mga pamamaraang ito, maaari akong gumuhit ng anumang hugis at kalkulahin ang lugar sa pamamagitan ng pagpapatupad ng interface nito.

Ngayon, tingnan natin ang pagpapaandar kung paano mo maipapatupad ang interface na ito.
Upang maipatupad ang interface na ito, ang pangalan ng iyong klase ay mababago sa anuman sa Hugis, sabihin nating 'Circle'. Kaya, upang maipatupad ang interface ng klase, gagamitin ko ang keyword na 'ipatupad':

nagpapatupad ang pampublikong klase ng Circle ng Hugis {pribadong dobleng radius public Circle (dobleng r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} pampubliko na doble getArea () {return Math.PI * this.radius * this.radius} pampublikong doble getRadius () {ibalik ito.radius}} pampublikong klase Pagsubok {public static void main (String args []) {Hugis c = bagong Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

Sa halimbawa sa itaas, tinukoy ko ang mga pagpapaandar sa iba't ibang pamamaraan at kinakalkula na lugar ng isang bilog. Dito, sa pagpapatupad ng isang interface, pinapayagan ang isang klase na maging mas pormal tungkol sa pag-uugaling ibinibigay nito. Maaari ka ring lumikha ng isa pang klase, sabihin ang klase na 'Rectangle' na maaaring magmamana ng parehong 'hugis' ng interface na may iba't ibang mga pag-andar.

Real-time na Halimbawa ng abstraction sa java

Ipagpalagay na mayroon kaming Sport bilang isang interface. Dito, ibibigay ang pagpapatupad ng mga klase na tinatawag na 'Badminton' at 'Football'. Sa isang tunay na senaryo, hindi malalaman ng isang end user ang klase sa pagpapatupad. Samakatuwid, ang isang bagay ng klase ng pagpapatupad ay maaaring ibigay ng pamamaraan ng pabrika. Ang pamamaraan ng pabrika ay maaaring magamit upang lumikha ng isang bagay ng klase ng pagpapatupad batay sa ilang pamantayan.
Ipatupad natin ang pareho at lumikha ng isang interface na tinatawag na Sport.java.

pampublikong Interface Sport {void play ()} // Ngayon, lilikha kami ng klase na pinangalanang 'Badminton' na publikong klase na Badminton ay nagpapatupad ng Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Susunod na likhain natin ang aming huling klase ng 'Football' na klase sa publiko Ang football ay nagpapatupad ng Sport {@Override public void play () {System.out.println ('Playing football')}

Ang huling hakbang ay upang lumikha ng isang pangunahing klase na pinangalanang 'SportInterface'.

public SportInterface {public static void main (String args []) {// your code here}}

Kapag naisagawa mo ang nasa itaas na programa, ang output ay makikita tulad ng ipinakita sa ibaba:

Naglalaro ng badminton ------------------- Naglalaro ng football

Inaasahan ko na malinaw ang mga ito sa interface at kung paano mo makakamtan ang abstraction gamit ito. Ngayon, tapusin natin ang artikulong ito sa pamamagitan ng paghahambing ng Abstraction at Encapsulation.

application ng malaking data analytics

Abstraction vs Encapsulation

Abstraction Encapsulasyon
Nalulutas ang problema sa antas ng disenyoNalulutas ang problema sa antas ng pagpapatupad
Ginamit para sa pagtatago ng hindi ginustong data at pagbibigay ng mga kaugnay na resultaAng Encapsulation ay nangangahulugang itinatago ang code at data sa isang solong yunit upang maprotektahan ang data mula sa labas ng mundo
Panlabas na layout - ginamit sa mga tuntunin ng disenyoInner layout - ginamit sa mga tuntunin ng pagpapatupad

Inaasahan kong naunawaan mo ang pagkakaiba sa pagitan ng Abstraction at Encapsulation. Sa pamamagitan nito, natapos na kami sa blog ng Java Abstraction. Sana, nalaman mong may kaalaman ito at nakatulong ito sa pagdaragdag ng halaga sa iyong kaalaman. Kung nais mong matuto nang higit pa tungkol sa Java, maaari kang sumangguni sa

Ngayon na naintindihan mo ang 'Ano ang Java Abstraction', tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na 'Java Abstraction' at babalikan ka namin sa lalong madaling panahon.