Your SlideShare is downloading. ×
0
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Object oriented programming
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Object oriented programming

230

Published on

La Programmazione Orientata agli Oggetti rappresenta il modello di programmazione piu' diffuso e utilizzato negli ultimi 10 anni.

La Programmazione Orientata agli Oggetti rappresenta il modello di programmazione piu' diffuso e utilizzato negli ultimi 10 anni.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
230
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OBJECT - ORIENTED PROGRAMMINGProf. Giovanni Carbonara
  • 2. LA PROGRAMMAZIONE AD OGGETTILa programmazione a oggetti si propone come una nuovametodologia, con un approccio risolutivo completamente diverso,l’approccio a oggetti. L’utilizzo di linguaggi orientati agli oggetticostringe il programmatore ad adottare nuove metodologie diprogrammazione.L’impiego di un linguaggio OOP impone l’utilizzo dei principifondamentali della programmazione a oggetti, che si possonoriassumere in modularità, incapsulamento, protezionedell’informazione, che sono le caratteristiche richieste al software dibuona qualità.Con la programmazione a oggetti è possibile modellare la realtà inmodo più naturale e vicino all’uomo, offrendo nuovi strumenti concui poter descrivere tutti i livelli di astrazione del sistema softwarenelle varie fasi della sua progettazione.
  • 3. ASTRAZIONEL’astrazione è il risultato di un processo, detto appuntoastrazione, secondo il quale, assegnato un sistema,complesso quanto si voglia, si possono tenere nascostialcuni particolari evidenziando quelli che si ritengonoessenziali ai fini della corretta comprensione delsistema.L’astrazione nasce dall’individuazione di proprietà similitra certi oggetti, situazioni o processi del mondo reale edalla decisione di concentrarsi su queste proprietà similie di ignorare temporaneamente, le loro differenze.
  • 4. LIVELLI DI ASTRAZIONELinformatica presenta comunemente livelli di astrazione,dove ogni livello rappresenta un diverso modello dellastessa informazione o processo, ma usa un sistema diespressione che implica un diverso set di oggetti ecomposizioni che si applicano solo ad un particolaredominio. I livelli più "alti" di astrazione tendono acostruirsi su qualcosa di relativamente concreto, mentrequelli più "bassi" tendono a dare progressivamente unarappresentazione più "granulare".
  • 5. OGGETTI, METODI, ATTRIBUTI, CLASSIGli oggetti sono raccolti in classi, che definiscono proprietà (attributi) emetodi comuni a tutti gli oggetti (istanze) di un certo tipo.Mediante il procedimento di astrazione, gli oggetti fisici vengono virtualizzatiin oggetti software che offrono le stesse informazioni e servizi degli oggettireali. Si scompone il sistema reale preso in esame in classi di oggetti,ognuna delle quali possiede le proprie variabili e funzioni, che assumono ilnome di attributi (caratteristiche specifiche) e metodi (comportamentiuguali).I metodi possono essere di tre tipi, classificati in base al tipo di operazioniche eseguono:•costruttori, per creare gli oggetti della classe;•visualizzatori, per accedere ai valori delle variabili;•modificatori, per modificare i valori delle variabili.
  • 6. EREDITARIETA’, INCAPSULAMENTO, POLIMORFISMOLa classe è l’elemento base della OOP, un programma a oggetti ècostituito da un insieme di classi che generano oggetti checomunicano tra loro. Se una classe non soddisfa appieno leesigenze specifiche di un caso particolare è possibile completarla,aggiungendole tutto quello che necessita per la nuova esigenza. Siparla di classe ereditata e l’ereditarietà è la vera potenzialità dellaOOP, che va oltre realizzando quello che comunemente prende ilnome di information hiding, cioè l’incapsulamento all’interno dellaclasse sia della rappresentazione dei dati sia delle elaborazioni chepossono essere eseguite su di essi. Un’ulteriore caratteristica dellaOOP è quella che prende il nome di polimorfismo, ovvero lapossibilità di applicare lo stesso operatore a classi diverse.
  • 7. OGGETTI, CLASSI, VISIBILITA’ EINCAPSULAMENTO
  • 8. OGGETTIGli oggetti sono le istanze delle classi, quindi oggetti della stessa classe sidifferenziano tra loro per le loro proprietà (attributi), ma hanno in comunecon tutti gli altri oggetti il comportamento.Un oggetto è un’entità astratta dotata di specifici attributi e in grado dicooperare con altri oggetti svolgendo specifiche azioni.Un oggetto è quindi la rappresentazione di una qualsiasi cosa che ha unostato e un comportamento.La creazione di un oggetto non è altro che l’allocazione in memoria dellospazio necessario per utilizzare questo elemento, ovvero si memorizza lostato corrente dell’oggetto.Gli attributi di istanza sono quelli di cui un oggetto dispone, detti anche piùsemplicemente attributi, un attributo costante è un attributo il cui valore noncambia nel tempo ma resta invariato. Un metodo di istanza è un metodoche, per essere utilizzato, necessita della creazione di un oggetto dellaclasse a cui appartiene, su cui essere invocato.
  • 9. CLASSIUna classe è un modello per un insieme di oggetti analoghi, caratterizzati:•dalla stessa rappresentazione interna;•dalle stesse operazioni con lo stesso funzionamento.Possiamo definire la classe come lo schema di base dal quale è possibilecreare i singoli oggetti, attributi e metodi di una classe sono detti membridella classe.Un attributo di classe è un attributo condiviso da tutte le istanze dellaclasse, ovvero da tutti gli oggetti creati con essa. Un metodo è un’azioneche può essere eseguita dall’oggetto. Un metodo di classe è un metodoinvocabile sulla classe stessa senza che sia necessario istanziare unoggetto.La definizione della classe deve naturalmente sempre precedere lacreazione dell’oggetto. La classe è un elemento statico, gli oggettiappartenenti alla classe sono elementi dinamici.
  • 10. PUBBLICO E PRIVATOLa parte pubblica di una classe, costituita dall’insiemedei metodi e degli attributi public, costituisce l’interfacciache ha lo scopo di dichiarare che cosa può fare la classee come può essere utilizzata da un utente. La parteprivata, costituita dall’insieme dei metodi e degli attributiprivate, di una classe definisce come lavora la classe.
  • 11. INCAPSULAMENTOCon il termine incapsulamento si intende il meccanismoche permette di racchiudere all’interno della stessastruttura sia dati che codice, in altre parole, una scatolache protegge i propri dati e il proprio codice tramitel’incapsulamento, dove i dati descrivono l’oggetto e ilcodice opera sui dati dell’oggetto. Questo principioprevede che si possa accedere alle informazioni di unoggetto unicamente attraverso i suoi metodi, cherappresentano l’interfaccia dell’oggetto.
  • 12. METODI COSTRUTTORI,DISTRUTTORI E OVERLOADING
  • 13. COSTRUTTORE, DISTRUTTOREIl metodo costruttore è quel particolare metodo che viene invocato allacreazione dell’oggetto e che contiene tutte le istruzioni da eseguire per lasua inizializzazione. Può essere definito anche un metodo costruttore conparametri, in questo caso non sarà possibile instanziare la classe senzapassare i parametri. Un metodo costruttore è un metodo particolare che sidistingue dagli altri per tre elementi:•ha lo stesso nome della classe;•non ha tipo di ritorno, nemmeno void;•ha visibilità public.Il metodo distruttore è quel particolare metodo che si occupa di rilasciare lerisorse.
  • 14. OVERLOADINGUna classe può contenere più costruttori e metodi con lo stessonome purché distinti da diverse intestazioni:•con un numero diverso di parametri (forma numerica);•con numero uguale di parametri ma di tipo diverso (forma tipale);•numero e tipo di parametri è lo stesso, ma la loro posizione èscambiata (forma posizionale).Si dice anche che l’overloading consente di sovraccaricare ilmetodo con più di un significato.
  • 15. EREDITARIETA’ EPOLIMORFISMO
  • 16. EREDITARIETA’L’ereditarietà è un’importante funzionalità della OOP che permettedi definire nuove classi partendo da classi sviluppate inprecedenza. La nuova classe viene definita esprimendo solamentele differenze che essa possiede rispetto alla classe di partenza. Laclasse antenato di una nuova classe prende il nome di superclasse,la classe discendente di una classe esistente prende il nome disottoclasse. Ogni sottoclasse eredita le caratteristiche della suasuperclasse.
  • 17. POLIMORFISMOIn informatica, il termine polimorfismo (dal greco "avere molte forme") viene usato insenso generico per riferirsi a espressioni che possono rappresentare valori di diversitipi (dette espressioni polimorfiche). Una funzione si dice polimorfa se è capace dioperare su oggetti di tipo diverso specializzando il suo comportamento in base al tipodi oggetto su cui agisce. Il termine polimorfismo indica la possibilità di implementarein modo speciale metodi e proprietà ereditati dalla classe antenato mantenendone ilnome.Il polimorfismo per metodi è la modalità operativa che permette di utilizzare lo stessonome per metodi differenti e viene realizzato in due modi:•mediante l’overloading, che significa letteralmente “sovraccaricare” ed indica lapossibilità di definire metodi che hanno lo stesso nome ma firma differente;•mediante l’overridding, che significa letteralmente “sovrascrittura” ed indica lapossibilità che le sottoclassi hanno di ridefinire un metodo ereditato da unasuperclasse, in questo caso si deve utilizzare la stessa identica firma.Il polimorfismo per dati o per classi è il meccanismo che permette di assegnare unriferimento di una superclasse all’istanza di una sottoclasse.

×