Programmazione orientata agli oggetti
Indice |
Introduzione
Il paradigma dell'Object Oriented Programming nasce dalla necessità di modellare in maniera più naturale problemi reali.
Esso si pone come una estensione della programmazione imperativa dove viene aggiunto un nuovo costrutto, la Classe, che può contenere sia i dati, che lo stato, che la descrizione del suo comportamento.
Nel mondo reale esistono un'infinità di situazioni che possono essere ricondotte ad una modellazione ad oggetti: si pensi ad un'automobile. L'automobile è un oggetto che ha caratteristiche proprie come ad esempio il colore, la marca, la potenza, etc... ha una serie di dati che ne determina lo stato come ad esempio accesa/spenta, velocità, accelerazione, direzione di marcia, coordinate GPS che ne determinano la posizione, etc.. e ha dei comportamenti come avviare il motore, accelerare, frenare, sterzare a destra o sinistra, etc... che ne determinano il cambio di stato.
La realtà è composta da vari oggetti e tutti questi oggetti interagiscono tra di loro "scambiandosi dei messaggi". Per tornare all'esempio dell'automobile si potrebbe definire anche l'oggetto pilota che interagisce con l'automobile girando il volante o schiacciando il piede sull'acceleratore. Tutte queste interazioni danno luogo appunto a scambio di messaggi in questo caso da un oggetto pilota ad un oggetto automobile (gira a sinistra, accelera, etc...)
Nel percorso che verrà costruito, ci avvarremo di uno strumento poco usuale per lo sviluppo di una unità didattica per le scuole superiori chiamato Alice. Alice è un ambiente di programmazione 3D che rende molto facile ed intuitivo la creazione di animazioni e giochi interattivi e permette anche di creare video da pubblicare su Youtube. Il concetto principale all'interno di Alice è appunto l'Oggetto. All'interno del mondo virtuale che si può creare con Alice, esso stesso un oggetto, si possono inserire personaggi, animali, piante, rocce, etc... tutti modellati attraverso il paradigma degli oggetti. La versione 3 del software permette anche di fare un interessante parallelo tra il programma creando usando gli strumenti visuali e il corrispettivo codice Java ed infine permette anche di esportare il progetto per poterlo manipolare nell'IDE NetBeans. Alice consente una introduzione soft al mondo degli oggetti in maniera molto intuitiva incorporando in maniera molto efficace il concetto di incapsulamento. Questo software è adatto per arrivare fino ad un certo punto perché non implementa né il concetto di ereditarietà, se non per la gerarchia già definita dei suoi oggetti che si può comunque visionare per avere un'idea di cosa significhi, né il concetto di polimorfismo. Per questi due aspetti si può pensare ad un'unità didattica successiva per fare una transizione da Alice a Java e introdurre questi altri due concetti fondamentali della programmazione ad oggetti.