Programmazione Orientata agli Oggetti in Linguaggio Java Sommario

09/06/2005
Programmazione Orientata
agli Oggetti in Linguaggio Java
Sintassi e Semantica:
Conclusioni
versione 2.2
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
G. Mecca – Università della Basilicata – [email protected]
Sintassi e Semantica: Conclusioni >> Sommario
Sommario
m Riepilogo
della Metafora
m La Piattaforma Java
ðBoxing e Unboxing
ðjava.lang
ðjavadoc
m Errori
Frequenti
G. Mecca - Programmazione Orientata agli Oggetti
2
1
09/06/2005
Sintassi e Semantica: Conclusioni >> Riassunto della Metafora
Riassunto della Metafora
m Applicazione
a oggetti
ðcollezione di componenti >> piccoli robot
antropomorfi
ðclasse >> componente femmina
ðoggetto >> componente maschio
ðheap >> città dei robot (zona in cui vivono i
componenti)
ðpackage >> condominio di componenti
(determina indirizzo e visibilità)
G. Mecca - Programmazione Orientata agli Oggetti
3
Sintassi e Semantica: Conclusioni >> Riassunto della Metafora
Riassunto della Metafora
m Compiti
dei Componenti
ðproprietà >> conoscere informazione
ðeseguire metodi >> fornire servizi eseguendo
compiti
m Comunicazione
tra i componenti
ðchiamate di metodi o richieste di utilizzo elle
proprietà >> richieste di prestare servizi
G. Mecca - Programmazione Orientata agli Oggetti
4
2
09/06/2005
Sintassi e Semantica: Conclusioni >> Riassunto della Metafora
Riassunto della Metafora
m Utilizzo
dei componenti
ðesecuzione dei costruttori >> la classe
“fabbrica” gli oggetti che ne sono istanza
ðdescrizione della struttura degli oggetti nel
codice (proprietà e metodi) >> istruzioni di
montaggio
ðriferimento >> telecomando per “pilotare” un
oggetto (differenza rispetto alle classi)
G. Mecca - Programmazione Orientata agli Oggetti
5
Sintassi e Semantica: Conclusioni >> Riassunto della Metafora
Riassunto della Metafora
m Utilizzo
dei componenti
ðper chiedere servizi ad una classe >> è
sufficiente “urlarne” il nome
ðper chiedere servizi ad un oggetto >> è
necessario farlo attraverso un telecomando
ðoggetto inutilizzabile >> oggetto per il quale
non ci sono più telecomandi disponibili
ðgarbage collector >> netturbino degli oggetti
inutilizzabili
G. Mecca - Programmazione Orientata agli Oggetti
6
3
09/06/2005
Sintassi e Semantica: Conclusioni >> Riassunto della Metafora
Riassunto della Metafora
m Ruoli
e responsabilità
ðle classi non possono fare tutto >> fabbricare
oggetti “stanca”
ðclassi fabbricatrici e classi di servizio
ðutilizzo dei metodi statici >> la classe come
supervisore dei suoi oggetti
ðassociazione tra oggetti >> squadra di lavoro
ðmassimizzare la coesione >> società
organizzata con compiti specializzati
G. Mecca - Programmazione Orientata agli Oggetti
7
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
La Piattaforma Java
m In
queste lezioni
ðprincipalmente classi del package java.lang
m Il
package java.lang
ðpackage che contiene tutte le classi
considerate indispensabili per la
programmazione
ðè automaticamente “importato” in tutte le
classi scritte dall’utente per economia
G. Mecca - Programmazione Orientata agli Oggetti
8
4
09/06/2005
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
Il Package java.lang
m Le
classi principali
ðjava.lang.System: include due proprietà
statiche pubbliche, System.out e System.in
ðjava.lang.String: la classe per la
manipolazione di stringhe immutabili
ðjava.lang.Math: numerosi metodi statici per lo
svolgimento delle principali operazioni
matematiche
G. Mecca - Programmazione Orientata agli Oggetti
9
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
Boxing e Unboxing
m Altre
classi fondamentali di java.lang
ðle classi “wrapper”
ðuna per ciascun tipo di dato primitivo
ðInteger, Float, Double, Character, Boolean
m Due
funzioni principali
ðeffettuare operazioni sui valori del tipo di
base corrispondente
ðtrasformare un dato primitivo in un oggetto
G. Mecca - Programmazione Orientata agli Oggetti
10
5
09/06/2005
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
Boxing e Unboxing
m Oggetto
di tipo integer
ðoggetto che “incapsula” un valore di tipo int
m Operazione
di “boxing” (inscatolamento)
ðtrasforma un valore int in un oggetto Integer
ðint x = 10; Integer y = new Integer(x);
m Operazione
di “unboxing”
ðtrasforma un oggetto Integer in un valore int
ðInteger y = new Integer(10); int x = y.intValue();
11
G. Mecca - Programmazione Orientata agli Oggetti
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
Boxing e Unboxing
m Attenzione
ATTENZIONE
boxing e unboxing
automatici
J2SE 5.0
ða partire da J2SE 5.0 il boxing e l’unboxing
sono diventati automatici
m In
particolare, è possibile scrivere
// in J2SE 5.0
int x = 10;
Integer y = x; // boxing automatico
Integer z = new Integer(10);
int w = z;
// unboxing automatico
G. Mecca - Programmazione Orientata agli Oggetti
// prima di J2SE 5.0
int x = 10;
Integer y = new Integer(x);
Integer z = new Integer(10);
int w = z.intValue();
12
6
09/06/2005
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
Boxing e Unboxing
m Un’operazione
tipica con Integer
ðestrarre un valore intero a partire da una
stringa letta dalla tastiera
ðil metodo public static int parseInt(String s) di
Integer
ðanalogamente per Float (parseFloat()) e
Double (parseDouble())
ðin Boolean:
public static boolean getBoolean(String s)
G. Mecca - Programmazione Orientata agli Oggetti
13
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
JavaDoc
m La
forma standard della documentazione
ðnome del package, elenco delle classi con
breve descrizione e collegamento
ðper ogni classe: nome e descrizione
ðelenco delle eventuali proprietà pubbliche
ðelenco dei metodi pubblici
ðaltre informazioni (>>)
ðquesto tipo di documentazione è chiamato
JavaDoc
G. Mecca - Programmazione Orientata agli Oggetti
14
7
09/06/2005
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
JavaDoc
m JavaDoc
ðdue cose diverse
ðun formato per la documentazione del codice
ðuno strumento per produrre la
documentazione
m Lo
strumento javadoc.exe
ðfornito a corredo della piattaforma in
%JAVA_HOME%\bin
G. Mecca - Programmazione Orientata agli Oggetti
15
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
JavaDoc
m Utilizzo
dello strumento
ðeseguito su una classe o su un package,
crea la documentazione nel formato javadoc
ðtante pagine HTML
m Sintassi
ðjavadoc –d cartellaDest nomePackage
ðjavadoc –d cartellaDest nomeClasse.java
G. Mecca - Programmazione Orientata agli Oggetti
16
8
09/06/2005
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
JavaDoc
m Come
>> it.unibas.utilita.Console
>> javadoc –d javadoc Console.java
vengono specificate le descrizioni
ðattraverso commenti particolari immersi nel
codice java
m Commento
javadoc
ðinizia con /** e finisce con */
ðè possibile indicare informazioni particolari
per la classe, le proprietà e i metodi
ðes: @author, @return, @parameter ecc.
G. Mecca - Programmazione Orientata agli Oggetti
17
Sintassi e Semantica: Conclusioni >> La Piattaforma Java
JavaDoc
m Se
>> javadoc –d javadoc calcolatrice
nel codice non ci sono commenti
ðjavadoc genera comunque la
documentazione senza descrizioni
ðnome delle classi, nome delle proprietà, nomi
dei metodi
m In
generale
ðè uno strumento molto utile anche nel caso
in cui non si scrivano commenti espliciti
G. Mecca - Programmazione Orientata agli Oggetti
18
9
09/06/2005
Sintassi e Semantica: Conclusioni >> Errori Frequenti
Errori Frequenti
m Gli
errori più frequenti in Java
ðerrori nell’utilizzo degli strumenti (compilatore
e macchina virtuale) >> CLASSPATH
ðerrori logici nell’uso degli oggetti
m Errori
nell’uso degli strumenti
ðattenzione a verificare sempre che la
struttura dei file su disco sia corretta e che
consenta la visibilità di tutte le classi
G. Mecca - Programmazione Orientata agli Oggetti
19
Sintassi e Semantica: Conclusioni >> Errori Frequenti
Errori Frequenti
m Errori
logici nell’uso degli oggetti
ðNullPointerException: si cerca di eseguire un
metodo su un riferimento null >> verificare
che il riferimento sia stato inizializzato
ðArrayIndexOutOfBoundsException:
sconfinamento nell’utilizzo di un array >>
verificare l’uso degli indici
G. Mecca - Programmazione Orientata agli Oggetti
20
10
09/06/2005
Sintassi e Semantica: Conclusioni >> Errori Frequenti
Errori Frequenti
m Un
errore sintattico frequente
ð“Variable might not have been initialized”:
mancata inizializzazione di una variabile:
viola la regola di inizializzazione obbligatoria
>> inizializzare alla dichiarazione
G. Mecca - Programmazione Orientata agli Oggetti
21
Sintassi e Semantica: Conclusioni >> Sommario
Riassumendo
m Riepilogo
della Metafora
m La Piattaforma Java
ðBoxing e Unboxing
ðjava.lang
ðjavadoc
m Errori
Frequenti
G. Mecca - Programmazione Orientata agli Oggetti
22
11
09/06/2005
Termini della Licenza
Termini della Licenza
m
This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.
m
Questo lavoro viene concesso in uso secondo i termini della
licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere
una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una
lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
G. Mecca - Programmazione Orientata agli Oggetti
23
12