29.01.2015 Views

Download dell'intero lavoro - Provincia di Torino

Download dell'intero lavoro - Provincia di Torino

Download dell'intero lavoro - Provincia di Torino

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

La programmazione orientata agli oggetti in Java<br />

Cosa identifica la OOP<br />

Oggetti e classi : identità, stato, classe, creazione, meto<strong>di</strong> che osservano e che mo<strong>di</strong>ficano, notazione punto<br />

Information hi<strong>di</strong>ng : ruolo e modalità <strong>di</strong> occultamento<br />

Ere<strong>di</strong>tarietà : cosa si ere<strong>di</strong>ta ere<strong>di</strong>tarietà semplice e multipla<br />

Polimorfismo : quale perché è così importante classi astratte, definizione e ridefinizione <strong>di</strong> meto<strong>di</strong><br />

Genericità : classi generiche, downcasting, genericità vincolata<br />

Aspetti avanzati : copia e uguaglianza, asserzioni, eccezioni, contenitori e iteratori,<br />

<strong>di</strong>struttori, persistenza<br />

1. Cosa identifica la OOP <br />

L'acronimo OOP in informatica sta per Object Oriented Programming (Programmazione Orientata<br />

agli Oggetti) e vuole denotare l'insieme delle caratteristiche a fondamento del para<strong>di</strong>gma della<br />

programmazione ad oggetti. Storicamente, le prime idee fondanti <strong>di</strong> questo para<strong>di</strong>gma sono sorte<br />

con il Simula '67, un linguaggio <strong>di</strong> simulazione <strong>di</strong>screta <strong>di</strong> scuola scan<strong>di</strong>nava, e sono state poi<br />

riscoperte negli USA negli anni '70-'80 con il linguaggio Smalltalk. Buona parte del gergo della<br />

OOP si deve a questi due linguaggi.<br />

Dalla metà degli anni '80 esiste un generale accordo sulle caratteristiche che devono essere presenti<br />

in un linguaggio per poterlo classificare come OOPL, cioè per affermare che mette a <strong>di</strong>sposizione il<br />

para<strong>di</strong>gma della OOP:<br />

1. insieme <strong>di</strong> operazioni astratte, associate ad un tipo<br />

2. stato locale<br />

3. ere<strong>di</strong>tarietà<br />

La prima caratteristica, spesso associata all'acronimo ADT (Abstract Data Type), stabilisce che<br />

l'unico modo per agire sugli oggetti <strong>di</strong> un certo tipo è quello <strong>di</strong> invocare delle operazioni (nel gergo<br />

OOP chiamate meto<strong>di</strong>) prestabilite e note agli utenti in modo astratto, cioè in<strong>di</strong>pendente dalla<br />

rappresentazione prescelta per la loro concreta implementazione (realizzazione).<br />

La seconda caratteristica stabilisce che ogni oggetto ha un proprio stato locale che può cambiare<br />

per effetto dell'esecuzione <strong>di</strong> alcuni meto<strong>di</strong>. In pratica il valore dello stato locale ad un certo istante<br />

è stabilito dal contenuto <strong>di</strong> un insieme <strong>di</strong> celle <strong>di</strong> memoria associate all'oggetto, dette campi o<br />

attributi dell'oggetto.<br />

L'ere<strong>di</strong>tarietà stabilisce infine che il linguaggio deve prevedere un meccanismo per stabilire delle<br />

relazioni IS-A ("è-un") tra classi <strong>di</strong> oggetti. Questo meccanismo consente in definitiva il riuso e il<br />

polimorfismo, due dei principali fattori alla base del successo della OOP.<br />

1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!