PROPRIETA'
DEL PARADIGMA AD OGGETTI
Proprietà
fondamentali del paradigma ad oggetti sono:
INCAPSULAMENTO
- - - - - - - - - - - - - - - - - - - - - - - E' la proprietà
di scrivere una volta per tutte il codice di un metodo in una classe
e di tenerlo come fatto. Nel senso che utilizziamo quell'operazione
senza preoccuparci di come verrà eseguita. L'incapsulamento
è una caratteristica importante perché separa l'implementazione
di un metodo dal suo utilizzo e protegge lo stato interno di un
oggetto da accessi non autorizzati o modifiche.
INFORMATION/IMPLEMENTATION
HIDING - - - - Sarebbe quando non vogliamo far diventare pubblici
i nostri metodi o i NOSTRI ATTRIBUTI!! Ecco, vi consiglio di tenere
i vostri attributi sempre ben nascosti, perché non è
proprio una cosa bene camminare per strada con l'attributo in vista
pubblica... insomma ve lo sconsiglio ma poi fate come volete.
EREDITARIETA'
-- - - - -- - - - - - - - - - - - - - - - - - - - - Quando creiamo
una sottoclasse di una classe essa eredita gli attributi ed i metodi
di quest'ultima. In un albero di sottoclassi le foglie ereditano
dai nodi padre fin su alla radice dell'albero. L'ereditarietà
ci permette dunque di evitare di dover perdere tempo nella implementazione
di codice-copia ed ad esempio a volte ci può essere utile
perché ci potrebbe far vivere di rendita ed invece di essere
qui a leggere il paradigma ad oggetti potremmo essere su una spiaggia
di Cuba. Oltre alle spiagge di Cuba l'ereditarietà permette
il polimorfismo che tra un pò vedremo cos'è...
IL POLIMORFISMO
- - - - - - - - - - - - - - - - - - - - - - - - Il polimorfismo
è la proprietà per cui un qualcosa può assumere
forme diverse (dal greco polimorfeus = saggezza). Nel paradigma
ad oggetti, allo stesso modo possiamo avere più metodi con
lo stesso nome. Un particolare tipo di polimorfismo, l'overriding
,si realizza tra la superclasse e la sottoclasse quando avendo un
metodo m1 scritto nella prima nella seconda scriviamo un altro m1
ma che fa cose diverse, e che si distingue per i parametri che prende.
Oppure possiamo addirittura trovare due metodi che si chiamano allo
stesso modo nella stessa classe e che si distinguono solo per il
fatto o che ritornano un valore diverso oppure perché hanno
parametri di I/O diversi, e in questo caso si parla di overloading.
|