Concepte de baza ale blogului programatorului oop (incapsulare, abstractie, polimorfism si moștenire)

Concepte de baza ale blogului programatorului oop (incapsulare, abstractie, polimorfism si moștenire)
Există 4 mecanisme ale POR: încapsulare, abstractizare, polimorfism și moștenire. A fost la interviu și mi sa cerut să vorbesc despre ei. Sunt un programator - nu un profesor, știu doar teoria la cerere. Știu că toată lumea a crezut acest lucru: "aceasta este o problemă sferică". De asemenea, sunt de acord cu asta. Nu mai pune pe alta, că răspunsul la această întrebare nu arată cunoștințele de programare, la toate - se poate arăta doar cât de bun a fost în colegiu. Și în institut am fost învățați doar trei termeni, abstracție - nu am menționat cum este corect pentru mine. Să ne amintim că acești termeni înseamnă (eu personal nu-mi amintesc definițiile și termenii înșiși, acum nu pot aminti cuvintele de încapsulare și polimorfism, și toate, dar știu ce înseamnă).







Să începem cu moștenirea. Este destul de definiție normală este dată în Wikipedia: vă permite să definiți o nouă clasă bazată pe un existent (părinte), precum și proprietățile și funcționalitatea clasei părinte împrumutat o nouă clasă. Cu alte cuvinte, clasa moștenitorului implementează specificațiile unei clase deja existente (clasa de bază). Acest lucru vă permite să tratați obiectele succesorului de clasă în același mod ca și cu obiectele din clasa de bază. După cum știți, C # nu acceptă moșteniri multiple. La interviu, imediat după această frază, ei pun întrebarea: "De ce nu suport?". Și răspunsul, "deoarece hemoroizii este mai mic" - nu este potrivit. Atunci mă gândesc întotdeauna și persoana care a cerut răspunsul. Cred că, mai degrabă nu, decât da. Doar la sfârșitul răspunsului trebuie să-i întrebați răspunsul corect și să vedeți ce nu știe.







Polimorfismul este interschimbabilitatea obiectelor cu aceeași interfață. Un limbaj de programare suportă polimorfismul dacă clasele cu aceeași specificație pot avea implementări diferite. Exemple sunt: ​​metode de reîncărcare și metode imperative (moștenire sau implementare diferită a interfețelor).

Encapsularea este așa numitul efect cutie neagră. Știi ce trebuie să te supui la intrare și știi ce va fi pe drum, procesul nu te deranjează. Pentru mine, acesta este unul dintre cele mai importante concepte. Înțelesul ei nu este să vă ciocniți capul cu prostiile de stânga. O mulțime de oameni uită despre acest lucru la interviu și întrebările atât de stupide sunt întrebate: "Cum funcționează colectorul de gunoi?". Și îmi place ca un web programator nada? Încapsularea! Știu că colecția de gunoi nu este problema mea și pot fi un programator cool și nu știu cum funcționează totul acolo. Exemplu: o doamnă de curățare vine la lucru și începe să întrebe cum funcționează aspiratorul, cum se rotește totul etc. Dacă știe - este un plus, poate lucra ca inginer și de ce ar trebui să o facă. De asemenea, le place să întrebe: "Care este diferența dintre ascunderea de la încapsulare?" Nu știam răspunsul. A auzit despre "ascundere", dar ce este, doar uitat (din nou spun că nu sunt profesor). După interviu, m-am uitat pe Internet și am înțeles ce întrebare a fost stupidă (nu faptul că am găsit răspunsul potrivit). În ceea ce mă privește, ascunderea face parte din încapsulare. Nici măcar nu știu ce răspuns mi-au dorit de la mine. Mi-am dat seama că persoana aflată sub incapsulare înțelegea - nu faima a ceea ce se întâmplă în interiorul metodei. Dar ascunderea - nivelele de acces, adică privat, intern, protejat. Aici sunt pur și simplu școli diferite, pentru mine ascunderea și există încapsulare, iar întrebarea este care este diferența - doar proastă. Este ca o întrebare: "Care este diferența dintre interpolare și aproximare?" Întrebarea este proastă, deoarece interpolarea este o parte (una dintre feluri) a aproximării. Totuși, ar fi întrebat: "Un măr este diferit de un măr". Și încercați să ghiciți că el a vrut să știe: "Care este diferența dintre un măr (copac) și un măr (fructe)".

Abstracție. Întrebare: "Ce este abstractizarea?" pentru mine echivalează cu întrebările: "Ce este POR?", "Ce este dragostea?" și așa mai departe. De ce o astfel de întrebare? Definiție, care pe wiki, nu-mi place. Și este greu să dai un răspuns. În ceea ce mă privește, aceasta este o reprezentare a obiectelor reale, a sarcinilor. acțiuni etc. în forma de program.

La interviu, trebuie să dați o sarcină de testare și apoi să cereți codul. Și nu căutați botanici, cu cine și care lucrați dezgustător.

Era familiarizată la interviu, așa că unul în același nonsens a fost întrebat. dar nu-mi amintesc deloc, și când am întrebat ce este abstractizarea, am fost atât de dracu 'cu așa ceva încât să înțelegi smochinele!







Trimiteți-le prietenilor: