Il paradigma Object-Oriented


Negli ultimi decenni sono stati sviluppati diversi paradigmi di programmazione: La programmazione imperativa (storicamente la prima, e ancora la piu' diffusa) corrisponde grosso modo al sottoinsieme di Java che abbiamo visto finora (espressioni, comandi, metodi, ...).
 
La programmazione funzionale vi e' stata introdotta nel corso di Programmazione I con il linguaggio ML.
 
La programmazione Object-Oriented (OO) si e' dimostrata la piu' adatta per lo sviluppo di sistemi software complessi (es: interfacce grafiche). La tecnologia OO ha come concetto chiave quello di oggetto, che e' una metafora del concetto di oggetto del mondo reale.
Ad ogni oggetto sono associate delle informazioni e delle funzionalita', e gli oggetti possono interagire gli uni con gli altri. L'uso di questo concetto a livello di programmazione consiste nel progettare un insieme di ``oggetti software" che modellano il problema che si vuole risolvere.

Il vantaggio principale di questo approccio e' quello di rendere il disegno di un programma piu' naturale (cioe' piu' vicino al modo di pensare della gente comune) e quindi piu' facile da capire e da sviluppare senza errori.

Java e' un linguaggio OO, nel senso che fornisce i meccanismi necessari per la definizione e l'uso di oggetti (come vedremo di seguito). Altri linguaggi OO sono Smalltalk, C++, Eiffel... Comunque si puo' programmare secondo il paradigma OO anche con linguaggi non OO, ma il peso della gestione degli oggetti ricade sul programmatore. Ad esempio, le prime interfacce grafiche erano scritte in linguaggi imperativi, ma con tecnologia OO.

Nel seguito descriveremo come Java realizza alcuni concetti della programmazione OO, in particolare i concetti di classe e di oggetto.
 


arrow1_right.gif (1095 byte)