Eccoci allinizio di questo corso su Java, uno dei linguaggi
di programmazione più discusso degli ultimi tempi. Il mondo di Java
è apparso sin dagli inizi, nellormai lontano 1995, un mondo
completamente nuovo: permetteva di essere eseguito su una pagina
del World Wide Web e prometteva di scavalcare i confini posti da
sistemi operativi e architetture differenti.
Sin dalla nascita Java ha destato la curiosità di tutti, programmatori
per primi, provocando ondate di entusiasmo, da un lato, e di scetticismo
dallaltro.
In ogni caso, negli anni successivi, Java ha tenuto fede alle promesse
ed è ormai una realtà indiscutibilmente affermata.
Quello che faremo in questo corso è scoprire, direttamente sulla
nostra pelle, le cause e le ragioni di tanto clamore e, soprattutto,
del successo di Java.
Prima di affrontare direttamente lo studio di questo linguaggio,
diamo unocchiata ai concetti che ne stanno alla base, e poiché
Java è espressamente un linguaggio orientato agli oggetti, vediamo
di capire cosa significa programmare per oggetti.
LObject Oriented Programming (Programmazione Orientata agli
Oggetti), in breve OOP, è una tecnica di programmazione sperimentata
a partire dagli anni '70 coi linguaggi Simula67, SmallTalk, Lisp
fino agli attuali C++ (dal quale Java eredita gran parte della sintassi),
Delphi e Visual Basic.
Essa rappresenta una delle idee più interessanti introdotte ultimamente
nel campo della programmazione, in grado di risolvere i problemi
di complessità e ingovernabilità che si presentavano nei progetti
di grandi dimensioni.
A differenza della programmazione control-flow
(per intenderci, quella classica di C e Pascal), in cui un programma
viene inteso come una sequenza di azioni, nellOOP un programma
è considerato come un insieme di oggetti che lavorano assieme in
un modo prestabilito allo scopo di perseguire un determinato obiettivo.
Avete presente il LEGO?
Potete pensare agli oggetti di un linguaggio di programmazione come
ai mattoncini del LEGO: piccoli pezzi di varia forma e colore che
possono essere combinati tra loro per creare forme più grandi e
più complesse.
Oppure pensate al motore della vostra auto (non importa che sia
una 500 o una Ferrari Testarossa): perché tutto funzioni è necessario
che ogni pezzo (oggetto) stia al suo posto, e non è inoltre possibile
utilizzare un carburatore della 500 per la Ferrari (nemmeno il viceversa,
in realtà).
Questo esempio ci mostra una condizione importante: sebbene un
carburatore è tale sia che si tratti di quello di una 500, sia che
si tratti di quello della Ferrari, è importante che esso si integri
col resto del sistema, altrimenti non andremo da nessuna parte.
Dunque possiamo definire oggetto un elemento autonomo contenuto
in un programma, dotato di proprie qualità (che chiameremo attributi)
e di un proprio comportamento (attraverso i metodi).
Il resto del sistema, motore o programma che sia, deve solo sapere
come interagire con quelloggetto, ossia conoscerne il comportamento
esterno, senza doversi preoccupare di come esso è fatto o di come
funziona in dettaglio.
Di un carburatore mi interessa sapere solamente che, agendo su una
particolare leva in un modo determinato, essa determinerà un aumento
dellafflusso di carburante al motore, e non mi importa sapere
in che modo ciò viene realizzato al suo interno.
In questo modo posso anche in seguito modificare internamente un
oggetto, ad es. per aumentarne le prestazioni o laffidabilità,
mantenendo inalterata la sua interfaccia di interazione con il sistema.
Non solo: se sono riuscito a costruire un oggetto con prestazioni
straordinarie, posso riutilizzarlo in un altro sistema analogo,
con la sicurezza che esso funzionerà esattamente come io mi aspetto.
Un vantaggio evidente della programmazione ad oggetti è che posso
costruire componenti riutilizzabili, purché definisca in maniera
chiara e precisa il suo comportamento esterno.
Per ottenere il massimo dallOOP occorre progettare in maniera
adeguata gli oggetti che si vogliono utilizzare, avendo cura di
rispettare poche ma importanti regole.
Presto vedremo in che modo è possibile creare oggetti con Java e
quali regole occorre tenere presenti nel farlo.
Nella prossima puntata conosceremo più da vicino questo favoloso
linguaggio.
Torna all'indice Generale del corso di Corso di Java di Software Planet