1
|
2 |
3 |
4
Unità didattica 5.2)
Elenco delle pagine di "Il
linguaggio Java: lez.6"
Introduzione e Unità didattica 5.1) - Pagina 1
Introduzione e Unità didattica 5.2) - Pagina 2
Unità didattica 5.3) - Pagina 3
Unità didattica 5.4) - Pagina 4
Unità didattica 5.5) - Pagina 5
Unità didattica 5.6) - Pagina 6
- I paradigmi della programmazione
ad oggetti
Ciò che caratterizza un linguaggio orientato agli
oggetti, è il supporto che esso offre ai cosiddetti "paradigmi della
programmazione ad oggetti", che di seguito elenchiamo:
Incapsulamento
Ereditarietà
Polimorfismo
A differenza di altri linguaggi di programmazione orientati agli
oggetti, Java utilizza in modo estremamente chiaro, bensì complesso,
i concetti appena accennati. Anche programmatori che si ritengono
esperti di altri linguaggi orientati agli oggetti come il C++,
studiando Java, potrebbero scoprire significati profondi in alcuni
concetti che prima si ritenevano chiari.
Nel presente e nel prossimo modulo introdurremo i tre paradigmi in
questione. Segnaliamo al lettore che non tutti i testi parlano di
tre paradigmi. In effetti si dovrebbero considerare paradigmi della
programmazione ad oggetti anche l’astrazione ed il riuso. Questi due
sono spesso considerati secondari rispetto agli altri su elencati,
non per minor potenza ed utilità, ma per il supporto alla
definizione di linguaggio orientato agli oggetti. Infatti,
l’astrazione ed il riuso, sono concetti che appartengono anche alla
programmazione procedurale.
- Astrazione e riuso:
L’astrazione potrebbe definirsi come "l’arte di saperci concentrare
solo sui dettagli veramente essenziali nella descrizione di
un’entità". In pratica l’astrazione è un concetto chiarissimo a
tutti noi, dal momento che lo utilizziamo in ogni istante della
nostra vita. Per esempio, mentre state leggendo questo manuale, vi
state concentrando sull’apprenderne correttamente i contenuti, senza
badare troppo alla forma, ai colori, allo stile, e tutti particolari
fisici e teorici che compongono la pagina che state visualizzando (o
almeno lo speriamo!). Potremmo parlare di almeno tre livelli di
astrazione per quanto riguarda la sua implementazione nella
programmazione ad oggetti:
astrazione funzionale
astrazione dei dati
astrazione del sistema
Adoperiamo l’astrazione funzionale ogni volta che implementiamo un
metodo. Infatti, tramite un metodo, riusciamo a portare all’interno
di un’applicazione un concetto dinamico, sinonimo di azione,
funzione. Per scrivere un metodo ci dovremmo limitare alla sua
implementazione più robusta e chiara possibile. In questo modo
avremo la possibilità di invocare quel metodo ottenendo il risultato
voluto, senza dover tener presente l’implementazione del metodo
stesso. Lo stesso concetto sussisteva anche nella programmazione
procedurale grazie alle funzioni.
Adoperiamo l’astrazione dei dati ogni volta che definiamo una
classe, raccogliendo in essa solo le caratteristiche e funzionalità
essenziali degli oggetti che essa deve definire nel contesto in cui
ci si trova. Potremmo dire che l’astrazione dei dati "contiene"
l’astrazione funzionale.
Adoperiamo l’astrazione del sistema ogni volta che definiamo
un’applicazione, in termini delle classi essenziali che devono
soddisfare agli scopi dell’applicazione stessa. Questo assomiglia
molto da vicina a quello che nella programmazione procedurale veniva
chiamato metodo "Top down". Potremmo anche affermare che
l’astrazione del sistema "contiene" l’astrazione dei dati, e, per la
proprietà transitiva, l’astrazione funzionale.
Il riuso è invece da considerarsi una conseguenza degli altri
paradigmi della programmazione ad oggetti. Notiamo anche come esso
era una conseguenza dell’astrazione funzionale e del metodo "Top
down" nella programmazione procedurale.
Elenco delle pagine di "Il
linguaggio Java: lez.6"
Introduzione e Unità didattica 5.1) - Pagina 1
Introduzione e Unità didattica 5.2) - Pagina 2
Unità didattica 5.3) - Pagina 3
Unità didattica 5.4) - Pagina 4
Unità didattica 5.5) - Pagina 5
Unità didattica 5.6) - Pagina 6