Mga computerSoftware

Abstract klase at pamamaraan: ang paglalarawan, mga katangian at mga tampok. Ano ang naiiba mula sa mga mahirap unawain klase interface

Ang sinumang may kaunting kaalaman sa programming, nagtataka kung bakit may mga abstract base klase. Ano ang kanilang mga layunin? Paano lumikha ng isang abstract klase? Ano ang mga pakinabang ay nag-aalok sila sa practice? Kung bakit sila ay kinakailangan sa programming at ilang mga tampok ng kanilang pagpapatupad ay dapat na kumuha sa account?

abstract mga klase

Kaya sa programming tinatawag na unit code sa batayan ng kung saan ang mga bagay ay hindi maaaring malikha. Ito ay nabanggit na ito klase ng mga kapalit ay hindi maaaring maging abstract. Samakatuwid, ang paglikha ng mga bagay batay sa mga ito ay lubos na posible. Kung isaalang-alang namin ang mga halimbawa ng Java, kami ay makagawa ng isang modelo na maaari naming ilarawan ang mga constructor sa klase A. Ngunit upang gamitin ang mga ito, hindi natin makakaya. Ang paraan out sa situasyon na ito ay upang ipahayag ang anumang mga variable reference. At kailangan mo upang maging malinaw na tinukoy upang ito ay tumuturo sa isang bagay ng klase A. Ito ay kung paano ito gawin? Ito ay makakatulong sa amin dalhin. Dapat itong makitid ang isip sa isip na ang mga magulang klase ay palaging itinuturing na mas maraming nalalaman kaysa ang supling. Sa maraming mga wika programming na ginagamit upang awtomatikong dalhin. Ngunit kung walang tiwala sa pagkakaroon ng mga naturang isang mekanismo, pagkatapos ay Dapat na tahasang reference sa bagay.

abstract pamamaraan

Ano ang mga ito? Abstract call ang mga pamamaraan na hindi ipinatupad sa klase na ito. Kaya, mga sumusunod na mga panaklong (na naglilista ng mga argumento na ginamit sa ganyang bagay) ay hindi magbibigay sa hugis na bukasan (pagkatapos niyon matatagpuan bloke paglalarawan ng ang paraan), at lamang ng isang tuldok-kuwit. Kaya, sa kasong ito, walang impormasyon tungkol sa kung ano ang ginagawa nito. Narito ang tanong ay maaaring itanong: "At kung ano ang paraan nang walang pagpapatupad?" Pagkatapos ng lahat, siya ay hindi na gagamitin! Of course, sa silid-aralan, kung saan siya ay inilarawan, ito ay hindi posible. Ngunit kung titingnan natin ang sitwasyon mula sa punto ng view ng isang supling, maaari itong tinatawag na. At ito ay gumana sa isang tiyak na paglalarawan na magagamit sa klase na ito.

Mga Tampok abstract pamamaraan

May mga limitasyon sa paggamit nito. Isaalang-alang natin ang halimbawa ng Hayaan ang wika Java programming. May ay isang pangangailangan kung ang klase ay may hindi bababa sa isang tulad paraan, dapat itong maging abstract. At sa anumang kaso ito ay naaangkop upang gamitin ang naturang isang construction? ni maunawaan na ito sa isang halimbawa ng klase alagang hayop Hayaan. Upang magsimula na maunawaan na doon ay walang tunog na sila ay nai-publish. Samakatuwid, sa pinaka-pangkalahatang klase ay hindi nakatakda tunog pagpapatupad ng ang paraan. Ngunit nilikha ng katawan na kung saan bukod sa pamamagitan ng mga bloke para sa kanya. At sa mga sumusunod, kapag gumagawa ng dog klase, pusa o hamster ay inireseta ng isang solong paraan para dito, sa balangkas ng kung saan ay maaaring isiwalat sa lahat ng mga tampok.

interface

Sa programming nilikha maraming mga kasangkapan na ang layunin - upang matulungan ang mga tao gumawa ng isang magandang kalidad ng produkto. At ang topic na pinag-iisipan ay dapat ibigay sa aspeto na ito, at na ang lahat ng tao alam Hindi tulad ng isang mahirap unawain klase mula sa interface. Kaya, ang huling tampok ay na hindi ito maaaring maging ang mga katangian at mga pamamaraan ay hindi natukoy katawan. Sa pamamagitan ng pagsusuri ng mga pagkakaiba sa pagitan ng isang abstract klase mula sa interface, huwag tumahan sa higit pa sa isang partikular na. Kaya, ang una ay minana, habang ang pangalawang - ay natanto. Taong walang karanasan na ito ay maaaring tila hindi makatwiran. Subalit ang katotohanan ay, na maaaring minana lamang ng isang klase, at natanto - hangga't kinakailangan. Iyon ay kung ano ay naiiba mula sa interface ng abstract class. Java pa rin ang mga tampok na ito ay maaaring inilarawan lamang abstract pampublikong mga pamamaraan at static constants. Ngunit sa parehong mga interface ay maaari ding minana. Ito ay kinakailangan upang ituro na ang mga operator na ginamit ay publiko sa pamamagitan ng publiko.

Maramihang inheritance ng mga interface

Ang tampok na ito ay hindi magagamit para sa mga klase sa maraming wika programming (eg, Java isinasaalang-alang sa pamamagitan ng sa amin). Ito ay dahil sa isang bilang ng mga problema. Gaya ng nabanggit ambiguities ay nagpapahiwatig na nangyari nang magkakasunod. Ito ang dahilan para sa pagpapakilala ng maramihang inheritance interface. Ito bahagyang malulutas nito ang mga umiiral na mga problema, ngunit hindi lahat. Kaya, salamat sa mga prinsipyo ng encapsulation at polymorphism, mga interface ay maaaring matagumpay na ipinatupad sa iba't ibang mga klase ayon sa iba't-ibang mga pamamaraan (bagaman sila ay magkaroon ng parehong pangalan). Ngunit huwag kalimutan ang tungkol sa mga umiiral na mga problema. Kaya, kapag nagtatrabaho na may maramihang mga interface ay magkakaroon upang laging tukuyin kung sino ang mayroon kami sa isip. Gayundin, ang problema ay at kapag sinubukan mong magtrabaho na may parehong pangalan sa dalawang paraan - sa kasong ito, hindi nila magagawang upang samantalahin. Samakatuwid, sa ganitong kaso ito ay kinakailangan upang alagaan ang presensya ng kabuuang mga benta.

abstract data

konsepto na ito ay susi sa programa. Sa kasong ito, sa ilalim ng abstraction ng independiyenteng pagsusuri at maunawaan ang paghihiwalay ng interface at pagpapatupad. Tingnan natin ang isang halimbawa. Mayroon kaming isang telebisyon, na kung saan ay isang bagay o module. Ito ay may isang interface. Gaya ng nabanggit, ang mga ito ay ang mga kontrol, pati na rin ang tunog at imahe. Ang mas perpektong interface ay ginagamit, ang mas kumportable sa TV na ginagamit. Maaari naming lumipat sa pagitan ng mga programa sa pamamagitan ng pagpindot sa anumang pindutan. Sa kasong ito, hindi na kailangan mag-isip tungkol sa mga pisikal na mga proseso sa TV. Alagaan ang mga ito mga espesyalista, na mangolekta ng mga aparato. gusto namin ang mga tao ay lamang na interesado sa mga ari-arian. Bumabalik sa programming, maaari naming sabihin na ang mga ito sa isang katulad na interface at pagpapatupad. Gayundin, kung ang isang tao ay may tiwala sa kanyang kaalaman, siya ang "alisin" masakop ang aming hypothetical TV at upang mapagbuti ito. Bagaman ito ay maaaring humantong sa mga lokal na tagumpay, sa karamihan ng mga kaso, ang resulta ay negatibo. Samakatuwid, sa mga suportadong programming pagbabawal ng pag-access at upang itago ang panloob na mga bahagi ng abstract data. Ang prinsipyo ng mekanismong ito ay nagbibigay ng isang paraan upang maiwasan ang sadya o hindi sinasadya pagsasaayos ng mga panloob na mga bahagi. At kapag pinag-uusapan ng abstract uri ng data, ang ibig sabihin ng isang set ng isang hanay ng mga operasyon na maaaring gumanap sa mga ito.

mga bagay

Nakapagpadala na kami nakakita ng isang mahirap unawain klase at interface sa pangkalahatan at general. Ngayon ipaalam sa detalye ang ating kaalaman. Upang simulan ang pay pansin na mga bagay. Sa ibaba ang mga ito, sa pangkalahatan, magkaroon ng kamalayan ng environmental katotohanan na umiiral sa espasyo at oras. Ngunit pormal na makilala ang mga bagay sa loob ng programa ay mahirap (sa pilosopiko at manilay-nilay punto ng view). Samakatuwid, ito ay dahil sa mga ari-arian nito. Bilang halimbawa, ang mga sumusunod: Ang isang bagay ay maaaring maging katangi-tangi na kinilala sa (na may isang natatanging pangalan), ito ay nasa isang tiyak na estado at gumagamit ng isang tiyak na pattern ng pag-uugali.

mana

Sapagkat ang iyong mga programa ay batay sa isang hierarchical relasyon puno gusali sa pagitan ng mga bagay, ang tanong ay tinataas tungkol sa mga katotohanan na ang nakapailalim na mga ari-arian ng mga uri ng parental aklatan code ay mailipat. Sa ilalim ng inheritance na maunawaan ang relasyon kapag ang isang tao ng isang umuulit ang pag-uugali at istraktura ng iba pang bagay. Sa ordinaryong buhay, maaari itong matagpuan kahit saan. Ang ganitong ay ipinagpaliban at programming relatibong abstract elemento. Bilang paghahambing, ang katunayan na walang ganoong katawan tulad ng isang ibon. Ito ay isang abstract na pangalan. Bilang isang partikular na pangyayaring humantong tsaa, Nightingale o maya. Salamat sa inheritance maaari naming gamitin ang mga aklatan klase, pati na rin upang bumuo ng mga ito para sa isang partikular na programa. Ang tool na ito ay nagbibigay-daan sa amin upang lumikha ng mga bagong bagay, sabay-sabay na pagdagdag o pagpapalit ng mga katangian ng isang naka-nilikha. Tagapagmana ay makakakuha ng lahat ng mga pamamaraan at mga patlang ng kanyang mga ninuno at nakakakuha ng sarili nitong mga katangian, kung kinakailangan. Dahil sa ang katunayan na may mga abstract mga elemento at mga prinsipyo ng pamana, may mga sapat na mga pagkakataon para sa pagbabago sa loob ng mga object-oriented programming. Bukod dito, hinahayaan ito ng isang nababaluktot diskarte sa paglutas ng mga problema. Kapag mamanahin mo ang isang bagong klase ng mga inilipat na data at pag-andar.

polymorphism

Ito ay kinakailangan upang ilapat ang parehong pag-andar upang malutas ang iba't ibang uri ng mga problema. Sa kasong ito ay nagbibigay ng pagkakaroon ng ang posibilidad ng isang iba't ibang mga aksyon, ang mga nilalaman ng kung saan ay depende sa uri ng object na kung saan trabaho ay tapos na. Sa ilalim ng polymorphism na maunawaan ang mga katangian ng mga elemento na may isang pangkaraniwang magulang, upang isagawa katulad ng semantiko kahulugan ng problema sa iba't ibang paraan. Gumuhit kami ng isang pagkakatulad sa mga hayop. May aksyon - upang tumakbo. Namin ang lahat ng malaman kung paano ito mangyayari. Ngunit iba't ibang mga hayop (leon, elepante, tsimpanse, buwaya, pagong) ang aksyon na ito ay isinasagawa sa iba't ibang paraan. Sa kasong ito, ang kanilang mga kilusan ay responsable developer, na kung kinakailangan ay maaaring maging sanhi ng isang partikular na kaso sa isang tiyak na gawain, algorithm at pagpapatupad ng mga ito matagumpay. Ginagawa ito gamit ang isang hanay ng mga pamamaraan. Kasabay sa bawat klase programmer tumutukoy kung saan object properties kung saan ay likas na taglay. Ang pagbabago ng isang bagay sa supling, maaari mong makamit tiyak, nais na aksyon sa kasong ito. Tulad ng isang epekto ay tinatawag na polymorphism ng mga bagay. Sa pangkalahatan, isang mahirap unawain klase ay isang lubhang kapaki-pakinabang na tool para sa programming.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.unansea.com. Theme powered by WordPress.