1 of 21

Slide Notes

DownloadGo Live

Principiile POO

Published on Nov 18, 2015

No Description

PRESENTATION OUTLINE

Principiile P.O.O. - simplu.

Incapsularea. Mostenirea. Polimorfismul
Photo by fung.leo

Scopul Incapsularii:
imbunătățirea interacțiunii de lucruri prin simplificarea lor .

Photo by Stéfan

SERVICII GOOGLE

Servicii Aple

Serviciile Mele

Și cel mai bun mod de a simplifica ceva - totul dificil sa se ascunda de la ochii altora . De exemplu, dacă ai intra în cabina de pilotaj Boeing , de la prima vedere nuti vei da seama cum sal pilotez .

Untitled Slide

Pe de altă parte , pentru pasagerii , totul pare simplu . A cumpărat biletul , a urcat într-un avion , a decolat și a aterizat . Puteți zbura cu ușurință de la continent la continent , posedind doar abilitatile de " cumparare de bilet " și " a urca pe un avion . " Toate complexitatile pregătirea aeronavei pentru zbor , decolare , aterizare , și o varietate de situații de urgență sunt ascunse de noi . Nu mai vorbim de navigație prin satelit , pilotul automat și centrele de control în aeroporturi .Toate aceste lucruri simplifică viața noastră .
Photo by Muffet

Untitled Slide

Photo by east_mountain

În ceea ce privește programarea, încapsulare - e o "ascundere a realizatiei"

Putem avea in program un Class Boing care poate sa aiba sute de metode Insa noi putem ascunde aceste metode insemnidule ca private si ele nu vor fi afisate. Celelalte metode ex. urca in avion, ocupa locul le punem marca public ca ele sa poata interactiona cu Class Pasager.
Astfel toate detaliile ca cabina pilotului vor fi ascunse de la pasagerii fericiti.
Photo by Stéfan

Untitled Slide

Să presupunem că ești un magician și doresti sa creez un cal care zboară . Pe de o parte , ai putea încerca să creez un Pegasus . Dar din moment ce Pegasus nu există în natură , nu este foarte ușor . Vom avea o mulțime de a face . Mult mai ușor să iai un cal si sai creez aripi.
Photo by Daniel Y. Go

Untitled Slide

Untitled Slide

Untitled Slide

În programare , acest proces este numit " moștenire " .
Să presupunem că aveți nevoie sa scrieti un class foarte complicat . Sal scrii de la zero iti va lua mult timp , apoi pentru al testa si cauta erorile iti va lua inca mai mult timp . Pentru ce sa alegem calea cea mai grea ? In primul rind va fi mai bine de cautat daca nu cumva gasim un class asemanator cu cel de care avem nevoie ?

Sa presupunem ca am gasit un Class care realizeaza 80% din tot functionalul de care avem nevoie.
Ok noi lam gasit si putem folosi Ctrl-c si Ctrl+v numai ca asa metoda are citeva minusiri:
1 ) Codul sursa de la un Class este insa tu lucrez intro companie super ciotkaea care te poate da in judecata pentru copy paste de cod makar la 6 linii de cod

2) Dublicarea inutila a unei mari parti de cod , si in caz ca autorul codului isi ispraveste greselile la tine ele vor ramine si multe altele

Untitled Slide

Photo by Stéfan

Untitled Slide

Untitled Slide

Untitled Slide

Strămoșii lor erau animale de uscat, care prin adaptarea treptată la mediul marin, au suferit pierderea perechii de picioare posterioare, crearea unei caudale, respectiv transformarea perechii de membre anterioare în înotătoare. Balenele sunt animale blânde, inteligente, care se hrănesc cu microorganismele din ocean.

Stiati ca balenele si vacutsa au acelasi stramos
Photo by spencer77

Untitled Slide

Imaginativa ca pentru un joc numit Vacutsa ati inventat Classa Vacutsa,
Ea are o multime de cimpuri metode. Si obiectele de tip Vacutsa pot face multe lucruri : sa mearga sa doarma , sa manince,
Insa vine Clientul proiectului si spune ca urmatorul nivel va fi cu un nou erou cu balena si totul se va petrece in apa.
Tu ai inceput sa creezi classa balena si ai realizata ca ea difera putin fata classa vacutsa . Si ai decis sa folosesti mostenirea.
Clasă " Cow " este perfecta pentru rolul de clasă părinte , are toate variabilele și metodele necesare . Este suficient sa adaugam posibilitatea de inot.
Photo by Stéfan

Dar există o problemă : balene dvs. are picioare , coarne și clopote . Deoarece această funcționalitate este implementată in classa parinte " Cow ". Ce sa facem ?

Polimorfizm

Multumesc pentru atentie