Sei sulla pagina 1di 5

Public class Nomeclasse {

Campi (private int qualcosa;)


Costruttori (public qualCosa(int qualcosa) { qualcosa = 0; } )
Metodi (public int getQualcosa() { return qualcosa; }
}
Oggetti - li oggetti in !ava servono a modelli""are oggetti c#e appartengono al dominio di
un problema$ li oggetti sono creati a partire dalle classi$ %a classe descrive il tipo di oggetto;
l&oggetto rappresenta istan"e individuali di una classe$
'gni oggetto #a uno stato rappresentato dai valori correnti dei campi$
'gni oggetto pu( comunicare con tutti gli altri oggetti c#iamando i loro metodi (invocazione
dei metodi)
Metodi - Possiamo comunicare con gli oggetti invocando metodi su di essi$ )i solito* quando
viene c#iamato un metodo* gli oggetti rispondono +acendo qualcosa$
Parametri - , metodi possono ric#iedere parametri c#e +orniscono in+orma"ioni aggiuntive*
necessarie per svolgere un certo compito$ %&intesta"ione di un metodo - il suo prototipo.
+ornisce in+orma"ioni necessarie a invocare quel metodo$
/d es. void move0ori"ontal (int distance)
, parametri sono sempre caratteri""ati da un tipo c#e de+inisce il 1genere2 di valori c#e
possono assumere$
Parametri +ormali (nomi) 3 - visibile ad un oggetto solamente all&interno del corpo del
costruttore o del metodo c#e lo dic#iara$ ,l campo d'azione o d'influenza di un
parametro - ristretto al corpo del costruttore o del metodo c#e lo dic#iara$
public number)isp(int rollOver)
Parametro attuale (valori)
ne4 Number)isp(24);
Istanze multiple - Molti oggetti simili possono essere creati a partire da una singola classe$
Codice sorgente - ,l codice sorgente di una classe determina la struttura (campi) e il
comportamento (metodi) di ogni oggetto di quella classe$
Valori di ritorno (risultati) - , metodi possono restituire in+orma"ioni riguardanti un oggetto
tramite un valore di ritorno$
Campi - , campi memori""ano , dati disponibili per ogni oggetto$ 5ono anc#e c#iamati
1variabili d&istan"a2$
,l campo di influenza - la de+ini"ione di classe nella sua intere""a* ossia vi si pu( accedere da
qualunque punto della classe$ ,l tempo di vita coincide con quello dell&oggetto cui appartiene$
Commenti - , commenti sono inseriti nel codice sorgente per +ornire delucida"ioni ai lettori
umani* e non #anno alcun e++etto sulle +un"ioni svolte dalla classe
Costruttori ( public 6ic7etMac#ine (int tic7etCost) ) - 8anno in modo c#e ogni oggetto sia
con+igurato correttamente al momento della crea"ione$
Metodi - , metodi possono invocare* all&interno della loro implementa"ione* altri metodi della
stessa classe$ Questa opera"ione - detta invocazione di un metodo interno.
Possono ric#iamare anc#e metodi appartenenti ad altri oggetti usando la nota"ione puntata* o
dot notation$ Questo procedimento si c#iama invocazione di un metodo esterna.
Metodi d'accesso (metodi get: public int getPrice() ) - restituiscono in+orma"ioni riguardanti
lo stato di un oggetto
Metodi di modifica o mutazione (metodo void) - Cambiano lo stato di un oggetto
Metodo astratto - prototipo di metodo sen"a il corpo$ 9sso - eviden"iato dalla parole c#iave
abstract$
Variaile locale - 9& una variablie c#e viene dic#iarata e usata all&interno di un singolo
metodo$ ,l suo campo d&a"ione e il suo tempo di vita sono limitati a quelli del metodo$
!strazione - 9& la capacit: di ignorare , dettagli inerenti alle singole parti di un problema per
+ocali""are l&atten"ione a un livello superiore$
Modularizzazione - 9& il processo di divisione dell&insieme in parti ben de+inite c#e possono
essere sviluppate ed esaminate separatamente* e c#e interagiscono secondo modalit: ben
precise$
Classi - %e classi de+iniscono i tipi$ ,l nome di una classe pu( essere usato come tipo di una
variabile$ %e variabili il cui tipo - il nome di una classe possono memori""are oggetti di quella
speci+ica classe$
Classe astratta - una classe astratta - una classe c#e non - destinata alla crea"ione di
istan"e$ 9ssa +unge da superclasse per altre classi$ %e classi astratte possono contenere
metodi astratti$ Perc#- una sottoclasse astratta diventi concreta* deve +ornire le
implementa"ioni di tutti , metodi astratti c#e eredita* altrimenti sar: anc#&essa astratta$
"iagramma delle classi - Mostra le classi di una applica"ione e la rela"ione c#e le lega$
;isuali""a in+orma"ioni relative al codice sorgente e rappresenta la visione statica di un
programma$
"iagramma degli oggetti - mostra gli oggetti e le loro rela"ioni in un determinato istante
durante l&esecu"ione di un&applica"ione$ <appresenta la visione dinamica di un programma$
Creazione di oggetti - li oggetti possono creare altri oggetti usando l&operatore ne#* ad
esempio. #ours = ne4 Number)is();
Overloading - =na classe pu( contenere pi> di un costruttore* o pi> metodi con lo stesso
nome* a patto c#e ognuno abbia un diverso insieme di parametri$ /d esso corrispondono pi>
oggetti* e viene usata l&in+orma"ione +ornita dal contesto per decidere quale oggetto -
denotato da una speci+ica istan"a di quel nome$
Polimorfismo - =n sistema di tipi nel quale uno stesso oggetto pu( avere pi> di un tipo$ Per
analogia diremo c#e un oggetto - polimor+o quando il sistema di tipi gli assegna pi> di un tipo$
,n ?ava le c#iamate ai metodi sono polimor+ic#e$ ,n momenti diversi la stessa invoca"ione pu(
invocare metodi di++erenti* a seconda del tipo dinamico della variabile usata per la c#iamata$
"eugger - Programma c#e serve a esaminare internamente l&esecu"ione di un&applica"ione$
Pu( essere usato per trovare errori nel codice
)ebbuging - il processo di individua"ione e corre"ione di una +onte di errore
$esting - 9& l&attivit: di veri+ica del +atto c#e una determinata parte di codice si comporti nel
modo previsto$
test in positivo 3 - l&esame dei casi per i quali ci si attende un successo
test in negativo 3 - l&esame di casi per i quali ci si attende un +allmineto
%secuzione manuale - Consiste nell&anali""are un segmento di codice riga per riga
osservando , cambiamenti di stato e il comportamento dell&applica"ione
Collezioni - li oggetti colle"ione sono oggetti c#e possono memori""are un numero
arbitrario di altri oggetti$
Ciclo - Pu( essere utili""ato per eseguire ripetutamente un gruppo di istru"ioni sen"a doverle
riscrivere pi> di una volta
Iteratore & 9& un oggetto c#e +ornisce la possibilit: di scandire (iterare su) tutti gli elementi di
una colle"ione
!rra' & 9& un tipo speciale di colle"ione in grado di memori""are un numero di elementi
+issato a priori$
Mappa & 9& una colle"ione di elementi c#e sono coppie c#iave@valore$ 5i pu( accedere ai
valori +ornendone la c#iave
Insieme (set) & 9& la colle"ione c#e memori""a ogni singolo elemento non pi> di una volta$
9sso non mantiene alcun ordine speci+ico tra gli elementi$
Interfaccia & %&inter+accia di una classe descrive c#e cosa +a la classe stessa e come si pu(
utili""arla sen"a mostrarne l&implementa"ione$
Oggetti immutaili & un oggetto - detto immutabile se il suo contenuto o il suo stato non
possono essere cambiati una volta creati$ %e string#e sono un esempio di oggetti immutabili$
Modificatori di accesso & de+iniscono la visibilit: di un campo* o di un costruttore o di un
metodo$ li elementi pulic sono accessibili all&interno della stessa classe e anc#e da altre
classi; gli elementi private sono accessbili solo all&interno della stessa classe$ )ic#iarare un
campo o un metodo protected permette c#e le sottoclassi dirette o indiriette vi accedano
come se +osse public$
Information (iding & ' incapsulamento dati* stabilisce c#e i dettagli interni
dell&implementa"ione di una classe devono essere nascosti alle altre classi e permette di
modulari""are meglio un&applica"ione$ <iduce la dipenden"a tra le classi migliorando la
qualit: del progetto$
Variaili di classe (variaili static)e) & /nc#e le classi possono avere campi$ ,n qualsiasi
momento esiste esattamente una copia di ogni variabile di classe* indipendentemente dal
numero di istan"e create$ (public static +inal int a =A;)
%a parola static - impiegata spesso per de+inire costanti$
"ipendenza & ,l termine dipenden"a si ri+erisce all&interconnessione tra le classi$ Bisogna
s+or"arsi di minimi""are la dipenden"a tra le classi del sistema* in modo c#e ogni classe sia il
pi> possibile* indipendente e comunic#i con le altre attraverso un&inter+accia concisa e ben
de+inita$
Coesione & descrive la correla"ione tra un&unit: di codice e un&entit: astratta o un compito
preciso$ ,n un sistema molto coeso ogni unit: di codice (metodo* classe o modulo) -
responsabile di un compito de+inito$ =na classe ben progettata presenta un alto livello di
coesione$
%reditariet* & ci permette di de+inire una classe come estensione di un&altra* trovando una
solu"ione al problema della replica"ione del codice$ =na superclasse - una classe c#e -
estesa da un&altra classe$ =na sottoclasse - una classe c#e ne estende (eredita da) un&altra$
9ssa eredita tutti , campi e , metodi dalla propria superclasse$
%e classi collegate da rela"ioni di ereditariet: +ormano una gerarc)ia di ereditariet*.
Costruttore della superclasse - la prima istru"ione* il costruttore di una sottoclasse deve
sempre invocare il costruttore della propria superclasse$ 5e il codice sorgente non include
questa c#iamata* il compilatore !ava cerc#er: di inserirne una automaticamente$ (es.
super(titolo* temp);)$
%&ereditariet: permette di riusare in un nuovo contesto classi scritte in preceden"a$ , vantaggi
di questa tecnica sono.
possibilit: di riutili""are il codice
riuso del codice
manuten"ione pi> semplice
estendibilit:
Come la sottoclasse - possibile de+inire un sottotipo+ come nelle classi anc#e i tipi +ormano
una gerarc#ia$ ,l tipo di una sottoclasse - un sottotipo del tipo della rispettiva superclasse$
%e variabili contengono oggetti del tipo speci+icato nella loro dic#iara"ione* oppure un suo
qualsiasi sottotipo$ (es$ ;e#icle vC = ne4 ;e#icle(); oppure ;e#icle vA = ne4 Car(); )
li oggetti di un sottotipo possono essere usati ovunque ci si attenda oggetti del relativo
supertipo; in questi casi si parla di sostituzione$
6utte le classi sen"a una superclasse esplicita #anno come superclasse O,ect.
5i #a un&ereditariet* multipla in una situa"ione in cui una classe eredita da pi> di una
superclasse$
Interfacce & in !ava - una speci+ica di tipo (sotto +orma di un nome di tipo e di un insieme di
metodi) c#e non de+inisce alcuna implementa"ione dei metodi$
,l tipo statico di una var$ v - il tipo cosD com&- dic#iarato nella sua dic#iara"ione nel codice
sorgente$
,l tipo dinamico di una variabile v - il tipo dell&oggetto memori""ato in v in un dato momento$
%ccezione - 9& un&oggetto c#e rappresenta i dettagli del +allimento di un programma$ Per
indicare una situa"ione d&errore si solleva un&ecce"ione
%e eccezioni non controllate sono un tipo di ecce"ione il cui impiego non ric#iede controlli
da parte del compilatore$ Quelle controllate ric#iedono controlli aggiuntivi da parte del
compilatore$ ,n particolare* in ?ava le ecce"ioni controllate ric#iedono l&uso di clausole t#ro4s
e di blocc#i trE$
,n un programma* il codice dedicato al controllo delle istru"ioni in cui potrebbe essere
sollevata un&ecce"ione si c#ima )andler o gestore delle eccezioni. %&#andler si occupa di
segnalare l&insorgere di un&ecce"ione e dell&eventuale recupero dalla situa"ione di errore$
%a serializzazione permette c#e interi oggetti e gerarc#ie di oggetti siano letti e scritti con
una singola opera"ione$ 'gni oggetto coninvolto deve appartenere ad una lcasse c#e
implementa l&inter+accia 5eriali"able$
Overriding 3 una sottoclasse pu( 1sovrascrivere2 ovvero ride+inire l&implementa"ione di un
metodo$ Per +arlo* dic#iara un metodo con lo stesso prototipo della superclasse ma un corpo
di++erente$