1. Ipinapakilala ang mga prinsipyo ng OOP

Ngayon ay matutuklasan mo ang isang bago at kawili-wiling mundo. Ang mundo ng Object-Oriented Programming ( OOP ). Natutunan mo dati ang tungkol sa mga klase at bagay. Ngayon ay malalaman mo ang higit pa tungkol sa kanila, higit pa.

Ang OOP ay lumitaw bilang tugon sa pagtaas ng pagiging kumplikado ng mga programa. Nang ang mga variable at pamamaraan sa mga programa ay nagsimulang magbilang ng sampu-sampung libo, naging malinaw na may kailangang gawin. Ang isang solusyon ay upang pagsamahin ang data at mga nauugnay na pamamaraan sa magkahiwalay na mga bagay.

Ngayon ang mga programmer ay kailangang hiwalay na ilarawan kung paano nakikipag-ugnayan ang mga bagay sa labas at kung paano sila kumikilos sa loob. Ginawa nitong mas madaling maunawaan at magsulat ng mga programa. Gayunpaman, nanatili ang isang tanong: aling mga pamamaraan ang dapat na panloob sa isang bagay at alin ang dapat na magagamit sa iba pang mga bagay?

Maraming mga diskarte ang sinubukan. At batay sa mga natuklasang pinakamahuhusay na kagawian, 4 na prinsipyo ng OOP ang lumitaw. Ang mga ito ay abstraction, encapsulation, inheritance at polymorphism . Dati, tatlo lang, ngunit kalaunan ay nagpasya ang mga eksperto na magdagdag din ng abstraction.


2. Abstraction

Ang mga tao sa Internet ay nagtatalo pa rin sa kahulugan ng abstraction sa OOP . Ang problema ay hindi lahat ng tao ay mali. Ito ay ang lahat ay tama . Kung mas maliit ang isang programa, mas maraming abstraction ang nakatali sa wikang Java. Kung mas malaki ang isang programa, mas maraming abstraction ang nakatali sa pagmomodelo/pagpapasimple ng mga real-world na bagay.

Ngunit ang pinakamahusay na mga isip ay tila sumasang-ayon na:

Ang abstraction ay ang paggamit lamang ng mga katangian ng isang bagay na kumakatawan dito ng sapat na tumpak sa isang programa. Ang pangunahing ideya ay upang kumatawan sa bagay na may pinakamaliit na hanay ng mga patlang at pamamaraan na sabay-sabay na nagpapahintulot sa iyong mga gawain na malutas nang may sapat na katumpakan .

Sa Java, ang abstraction ay nagagawa sa pamamagitan ng mga abstract na klase at interface.

Abstraction sa totoong buhay

Ang isang magandang halimbawa ng abstraction sa totoong buhay ay ang mga paglalarawan ng trabaho sa isang kumpanya o organisasyon. Ang pamagat ng isang posisyon ay isang bagay, ngunit ang mga tiyak na responsibilidad na itinalaga sa isang posisyon ay isang ganap na naiibang bagay.

Isipin na ikaw ay nagdidisenyo ng istraktura ng organisasyon ng iyong hinaharap na kumpanya. Maaari mong hatiin ang mga responsibilidad sa secretarial, ikalat ang mga ito sa iba't ibang posisyon. Maaari mong hatiin ang posisyon ng CEO sa ilang magkakahiwalay na posisyon: CFO, CTO, CMO, HR Director. O, halimbawa, maaari mong pagsamahin ang mga posisyon ng manager ng opisina at recruiter sa isa.

Nag-iisip ka ng mga titulo ng trabaho at pagkatapos ay hatiin ang mga responsibilidad para sa mga posisyong ito. Ang abstraction ay ang paghiwalay sa bagay sa kabuuan at pagpili ng mga mahahalagang katangian at sangkap na kailangan natin.

Ipinapakilala ang mga prinsipyo ng OOP.  Abstraction

Mula sa isang programming point of view, ang abstraction ay ang tamang paghahati ng isang programa sa mga object . Kadalasan, mayroong dose-dosenang mga paraan upang kumatawan sa anumang malaking programa bilang mga bagay na nakikipag-ugnayan. Hinahayaan ka ng abstraction na piliin ang mga mahahalagang katangian at huwag pansinin ang mga hindi mahalaga.


3. Encapsulation

Ang layunin ng encapsulation ay pahusayin ang mga pakikipag-ugnayan sa pamamagitan ng paggawa ng mga bagay na mas simple.

At ang pinakamahusay na paraan upang gawing simple ang isang bagay ay upang itago ang anumang bagay na kumplikado mula sa prying mata. Halimbawa, kung mailagay ka sa sabungan ng isang Boeing jumbo jet, hindi mo agad mauunawaan kung paano ito paandarin:

Ngunit para sa mga pasahero sa eroplano, ang lahat ay mas simple: bumili ka ng tiket at sumakay sa eroplano, na lumilipad at pagkatapos ay lumapag. Madali kang lumipad mula sa isang kontinente patungo sa isa pa na may kakayahang "bumili ng tiket" at "makasakay sa eroplano". Ang lahat ng pagiging kumplikado ng paghahanda ng sasakyang panghimpapawid para sa paglipad, pag-alis, paglapag at iba't ibang mga sitwasyong pang-emergency ay nakatago sa iyo. Hindi banggitin ang satellite navigation, autopilot at air traffic control centers. At ito ay nagpapasimple ng buhay para sa atin.

Mula sa punto ng view ng programming, ang encapsulation ay "itinatago ang pagpapatupad". Gusto ko ang kahulugang ito. Ang aming klase ay maaaring maglaman ng daan-daang pamamaraan at magpatupad ng napakasalimuot na pag-uugali sa iba't ibang sitwasyon. Ngunit maaari naming itago ang lahat ng mga pamamaraan nito mula sa prying eyes (sa pamamagitan ng pagmamarka sa kanila ng pribadong modifier), at mag-iwan lamang ng dalawa o tatlong paraan upang makipag-ugnayan sa ibang mga klase (sa pamamagitan ng pagmamarka sa kanila ng pampublikong modifier). Pagkatapos ay makikita lamang ng lahat ng iba pang klase ng aming programa ang tatlong pampublikong pamamaraan at tatawagin sila ngunit hindi ang iba. At ang lahat ng pagiging kumplikado ay itatago sa loob ng klase, tulad ng sabungan na itinatago sa mga masasayang pasahero.


4. Pamana

Mayroong dalawang panig sa mana . Inheritance sa programming at inheritance sa totoong buhay. Sa programming, ang inheritance ay isang espesyal na ugnayan sa pagitan ng dalawang klase . Ngunit ang pamana sa totoong buhay ay higit na kawili-wili.

Kung kailangan nating lumikha ng isang bagay sa totoong buhay, mayroon tayong dalawang pagpipilian:

  1. Lumikha ng bagay na kailangan natin mula sa simula, gumugol ng maraming oras at pagsisikap.
  2. Lumikha ng bagay na kailangan natin batay sa isang bagay na mayroon na.

Ang pinakamainam na diskarte ay ito: kumuha ng kasalukuyang magandang solusyon, baguhin ito ng kaunti, ayusin ito upang umangkop sa aming mga pangangailangan, at pagkatapos ay gamitin ito.

Kung susuriin natin ang kasaysayan ng tao pabalik sa simula nito, matutuklasan natin na bilyun-bilyong taon na ang lumipas mula nang magsimula ang buhay sa planeta. Ngunit kung isasaalang-alang natin ang panimulang punto ng mga tao bilang ating mga primate ancestors (ibig sabihin, ang mga tao ay "batay sa" primate ancestors), pagkatapos ay ilang milyong taon na lang ang lumipas. Ang pagtatayo mula sa simula ay tumatagal. Mas matagal.

Sa programming, maaari kang gumawa ng katulad sa pamamagitan ng paglikha ng isang klase batay sa isa pa. Ang bagong klase ay bumaba mula sa (nagmana) ng kasalukuyang klase. Ito ay lubhang kapaki-pakinabang kapag ang isang umiiral na klase ay may 80-90% ng data at mga pamamaraan na kailangan namin. Idineklara lang namin ang naaangkop na klase bilang magulang ng aming bagong klase, at lahat ng data at pamamaraan ng parent class ay awtomatikong lalabas sa bagong klase. Maginhawa, tama?


5. Polymorphism

Ang polymorphism ay isang konsepto ng programming. Inilalarawan nito ang isang sitwasyon kung saan nakatago ang iba't ibang mga pagpapatupad sa likod ng isang interface. Sa pagtingin sa totoong buhay para sa isang katapat, nakita namin na ang pagpapatakbo ng isang sasakyan ay angkop.

Kung ang isang tao ay maaaring magmaneho ng isang trak, pagkatapos ay maaari din siyang ilagay sa likod ng gulong ng isang ambulansya o sa likod ng gulong ng isang sports car. Ang isang tao ay maaaring magpatakbo ng isang kotse, anuman ang uri ng kotse, dahil ang lahat ng mga kotse ay may parehong control interface: isang manibela, pedal at gearshift. Magkaiba ang panloob ng mga sasakyan, ngunit lahat sila ay may parehong control interface.

Sa pagbabalik sa mundo ng programming, pinapayagan ng polymorphism ang mga bagay na may iba't ibang klase (karaniwan ay may iisang ninuno) na ma-access sa parehong paraan, isang ari-arian na ang halaga ay halos hindi ma-overstated. Tumataas ang halaga nito habang lumalaki ang programa.

Ang ibig sabihin ng OOP ay mga prinsipyo. Mga panloob na batas. Nililimitahan tayo ng bawat isa sa ilang paraan, ngunit nagbibigay ng malaking benepisyo bilang kapalit kapag naging malaki ang programa. Ang apat na prinsipyo ng OOP ay parang apat na paa ng isang mesa. Alisin ang isa at ang buong sistema ay nagiging hindi matatag.