Publicitate
Dacă ați făcut unele programare pentru începătorisau chiar ați început să priviți diferite limbi, probabil că ați întâlnit sintagma „programare orientată spre obiect” (sau „OOP”).
Există tot felul de explicații tehnice despre ce este vorba, dar astăzi vom arunca o privire asupra definirii programării orientate pe obiect într-un mod simplu.
Înainte de a începe: Limbi procedurale
Pentru a înțelege ce este un limbaj de programare orientat pe obiecte, trebuie să înțelegeți ce l-a înlocuit. Limbajele de programare timpurii au fost procedurale - așa-numite, deoarece programatorul ar defini un set de proceduri foarte specifice pe care computerul le va întreprinde.
În primele zile, procedurile erau scrise pe cărți de perforare. Acești pași au făcut date, au efectuat o secvență de acțiuni asupra respectivelor date, apoi au emis date noi.
Limbile procedurale au funcționat bine o perioadă (și unele sunt încă în uz). Dar când doriți să programați ceva dincolo de o secvență de bază de pași, limbajele procedurale pot deveni dificil de gestionat. Acolo intervine o programare orientată pe obiecte.
Obiectul programării orientate pe obiecte
Atunci, ce este programarea orientată pe obiecte?
Primul limbaj orientat pe obiect (în general a fost de acord cu Simula) a introdus ideea de obiecte. Obiectele sunt colecții de informații care sunt tratate ca o entitate singulară.
Ne vom arunca mai adânc în ceea ce înseamnă de fapt într-o secundă cu un exemplu, dar mai întâi trebuie să vorbim clase. Clasele sunt asemenea obiectelor anterioare. Acestea conțin o listă de atribute care, atunci când sunt definite, devin un obiect.
Să luăm exemplul programării unui joc de șah. S-ar putea să avem o clasă numită Piece. În Piece, avem o listă de atribute:
- Culoare
- Înălţime
- Formă
- Mișcarea permisă
Un obiect definește pur și simplu o singură instanță a unui lucru aparținând acelei clase.
Deci am putea avea un obiect numit WhiteQueen. Obiectul respectiv ar avea definiții pentru toate cele patru atribute (alb, înalt, cilindric cu crenelări, orice număr de spații în orice direcție). S-ar putea să aibă și el metode sau funcții.
Ce face acest lucru mult mai bun decât abordarea procedurală?
Pe scurt, limbaje de programare orientate pe obiect (ca Java) ușurează organizarea datelor și codului într-un mod mai versatil pentru proiecte mai mari.
Pentru a discuta despre acesta într-un pic mai detaliat, vom vorbi despre cele patru elemente de bază ale programării orientate pe obiecte.
Programare orientată pe obiecte: abstractizare
Doar pentru că doriți să folosiți ceva nu înseamnă că trebuie să știți cum funcționează. Un espressor, de exemplu, este complex. Dar nu trebuie să știi cum funcționează. Trebuie doar să știți că atunci când atingeți „On”, veți primi espresso.
Același lucru este valabil și pentru obiectele din programarea orientată pe obiecte. În exemplul nostru de șah, este posibil să avem o metodă de mutare (). Această metodă ar putea necesita o mulțime de date și alte metode. Poate avea nevoie de variabile de poziție inițială și poziție finală. Ar putea folosi o altă metodă pentru a determina dacă a fost capturată o piesă.
Dar nu trebuie să știi asta. Tot ce trebuie să știți este că atunci când îi spuneți piesei să se miște, aceasta se mișcă. Asta este abstractizarea.
Programare orientată pe obiecte: încapsulare
Încapsularea este una dintre modalitățile prin care programarea orientată pe obiect creează abstracție. Fiecare obiect este o colecție de date care sunt tratate ca o singură entitate. Și în aceste obiecte se găsesc date - atât variabile, cât și metode.
Variabilele din cadrul unui obiect sunt, în general, păstrate private, ceea ce înseamnă că alte obiecte și metode nu le pot accesa. Obiectele nu pot fi afectate decât folosind metodele lor.
Un obiect Episcop ar putea conține mai multe informații. De exemplu, ar putea avea o variabilă numită „poziție”. Acea variabilă este necesară pentru a utiliza metoda mutare (). Și, desigur, are o culoare.
Făcând publică variabila de poziție și metoda mutare () publică, un programator protejează variabila mutare de a fi afectat de orice altceva. Și dacă culoarea este o variabilă privată, nu există nicio modalitate de schimbare a altui obiect decât dacă există o metodă care să permită schimbarea. (Ceea ce probabil nu ai avea, deoarece culoarea piesei ar trebui să rămână constantă.)
Aceste variabile și metode sunt păstrate în obiectul Bishop. Deoarece sunt încapsulate, un programator ar putea aduce o modificare structurii sau conținutului obiectului, fără să-ți pese de interfața publică.
Programare orientată pe obiect: moștenire
Pe lângă clase, limbajele de programare orientate pe obiecte au și sub-clase. Acestea conțin toate atributele din clasa părinte, dar pot conține și alte atribute.
În jocul nostru de șah, piesele de pion au nevoie de o metodă care să le poată transforma în alte piese, dacă acestea vor ajunge până la capătul tablei. O vom numi metoda transformPiece ().
Nu orice piesă are nevoie de metoda transformPiece (). Așadar, nu am dori să o punem în clasa Piece. În schimb, putem crea o sub-clasă numită Pion. Deoarece este o sub-clasă, moștenește toate atributele de la Piece. Așadar, o instanță a sub-clasei Pion include o culoare, înălțime, formă și mișcare permisă.
Dar include și metoda transformPiece (). Acum niciodată nu trebuie să ne facem griji pentru utilizarea accidentală a acestei funcții pe un rook. Iată o explicație tehnică:
Crearea subclase economisește de asemenea mult timp. În loc să creeze noi clase pentru orice, programatorii pot crea o clasă de bază și apoi o pot extinde la noi sub-clase atunci când trebuie. (Cu toate acestea, merită să remarcăm asta încrederea excesivă pe moștenire este proastă 10 Principii de bază de programare Fiecare programator trebuie să urmezeScrieți întotdeauna cod care poate fi întreținut de oricine poate ajunge să lucreze la software-ul dvs. În acest scop, iată mai multe principii de programare care vă ajută să vă curățați actul. Citeste mai mult .)
Programare orientată pe obiecte: Polimorfism
Polimorfismul este rezultatul moștenirii. Înțelegerea completă a polimorfismului are unele cunoștințe de programare, așa că vom rămâne doar cu elementele de bază aici. Pe scurt, polimorfismul permite programatorilor să folosească metode cu același nume, dar cu diferite obiecte.
De exemplu, clasa noastră de piese ar putea avea o metodă de mișcare () care mișcă o piesă un spațiu în orice direcție. Asta funcționează pentru piesa regală, dar nu pentru orice altceva. Pentru a remedia această problemă, putem defini o nouă metodă mutare () din subclasa Rook care definește mișcarea ca un număr nelimitat de spații înainte, înapoi, stânga sau dreapta.
Acum, când un programator invocă metoda mutare () și folosește o argumentă ca argument, programul va ști exact cum ar trebui să se miște piesa. Acest lucru economisește o mulțime de timp în încercarea de a afla care dintre multe metode diferite ar trebui să utilizați.
Programare orientată pe obiect într-o casă
Dacă capul tău se învârte puțin după ultimele patru definiții, nu vă faceți griji prea mult. Iată care sunt principalele lucruri pe care trebuie să le rețineți:
- Programarea orientată pe obiect colectează informații în entități unice numite obiecte.
- Fiecare obiect este o singură instanță a unei clase.
- Abstracția ascunde funcționările interioare ale unui obiect atunci când nu este necesar să le vedem.
- Encapsularea stochează variabile și metode în cadrul obiectelor și le protejează.
- Moștenirea permite sub-claselor să utilizeze atribute din clasele părinte.
- Polimorfismul permite obiectelor și metodelor să se ocupe de mai multe situații diferite cu o singură interfață.
Dacă vă puteți aminti aceste puncte, veți avea o manieră bună despre ce este programarea orientată pe obiecte. Cele patru elemente de bază ale programării orientate pe obiecte, așa cum am menționat, pot fi puțin dificile de a utiliza un control. Dar, după ce începeți programarea, vor deveni mai clare.
Nu uitați că în acest articol am discutat doar despre generalități. Diferite limbaje orientate pe obiect vor avea propriile lor chestiuni și modalități de a face lucrurile să se întâmple. Odata ce tu alege limba potrivită pentru tine Căutați cele mai bune limbi de programare? Începe aici!Indiferent dacă sunteți complet nou în limbajele de programare sau căutați să sări într-un nou tip de programare, una dintre cele mai importante întrebări este: "Ce limbaj de programare este potrivit pentru mine?" Citeste mai mult , veți începe să aflați cum pune în practică principiile OOP.
Dann este un consultant în strategie de conținut și marketing care ajută companiile să genereze cerere și clienți. De asemenea, bloguri despre strategie și marketing de conținut pe dannalbright.com.