Java - 11
Java - 11
Programmazione I - corso B
a.a. 2007-08
1
I tipi di Java
• tipi primitivi:
– boolean 1 bit true, false
– tipi numerici
tipi interi
– con segno:
byte 8 bit da -128 a 127
short 16 bit da -32768 a 32767
int 32 bit da ~ -2 miliardi a ~ 2 miliardi
long 64 bit ... miliardi di miliardi ...
– assoluti:
char 16 bit da 0 a 65535
tipi con virgola mobile (floating point)
– float 32 bit ~ 7 cifre decimali significative
– double 64 bit ~ 15 cifre decimali signific.
Programmazione I B - a.a. 2007-08 3
2
Esiste un terzo genere di tipi di riferimenti a oggetti,
i tipi-interfaccia, che non studieremo in questo corso.
• tipi primitivi:
– boolean
– tipi numerici
NOTA BENE
3
Riferimenti a oggetti di una data classe
Se UnaClasse è il nome di una classe predefinita oppure
definita dal programmatore, la valutazione di un’espressione
new UnaClasse(...)
dove UnaClasse(...) sia una corretta invocazione di un costrut-
tore, crea nello heap un oggetto e restituisce il riferimento a tale
oggetto (cioè il suo indirizzo).
UnaClasse unOggetto;
...
unOggetto = new UnaClasse(...);
Riferimento nullo
Fra i particolari valori di tipo riferimento a oggetto vi è il
riferimento nullo, indicato dalla costante null (corrispondente al
nil del Pascal).
4
Ulteriori osservazioni sui tipi e su null
Un tipo, in un linguaggio di programmazione, può essere pensato come un
insieme. Gli elementi di un tale insieme, che sono degli enti astratti, sono i
valori di quel tipo. Naturalmente tali enti astratti hanno, nella memoria del
calcolatore, rappresentazioni concrete sotto forma di sequenze di bit.
Nel linguaggio, nel nostro caso in Java, tali enti astratti sono rappresentati
da costanti numeriche come 5, -21, 3.14, ecc., oppure da parole riservate
come true e false.
Attenzione: ricordare che non solo i numeri (interi, doubles, ecc.) sono valori;
anche i booleani sono valori esattamente come i valori numerici;
semplicemente non appartengono a un tipo numerico ma al tipo boolean.
Si noti che null è l'unico valore di tale tipo che può essere scritto
esplicitamente nel linguaggio: in un programma Java non possiamo scrivere
esplicitamente l'indirizzo di un oggetto!
Programmazione I B - a.a. 2007-08 9
Il tipo char
Un carattere, in Java, è semplicemente un numero intero assoluto compreso
fra 0 e 65535, il quale quando viene visualizzato per mezzo di opportuni
metodi (ad es. System.out.println) viene scritto sotto forma di carattere.
Ai caratteri si applicano quindi tutte le ordinarie operazioni numeriche, in
particolare gli operatori di confronto <, <=, >, ==, ecc.
Si possono anche fare somme, sottrazioni, moltiplicazioni, ecc. di caratteri,
ma ovviamente non hanno molto senso!
Esempio:
le due assegnazioni char c = 'a'; char c = 97;
hanno esattamente lo stesso effetto (ma la seconda è cattivo stile !)
c = c + 3;
System.out.println(c); // scrive il carattere 'd';
naturalmente è un uso sconsigliato !
5
Il tipo String
• Il tipo String è un tipo di riferimento a oggetto, infatti String è
una classe predefinita di Java
Per esempio:
è equivalente a:
La classe String
6
Java: variabili
7
Java: classi come generatori di oggetti
Scrivere un programma in Java significa:
Definire un certo numero di classi
Per ogni classe, definire
1. Le proprietà della classe, cioè le strutture-
dati necessarie, cioè un insieme di campi
(normalmente privati) che sono lo stato
dell’oggetto
2. Uno o più costruttori, cioè meccanismi per
inizializzare istanze (oggetti) di quella classe
3. Uno o più metodi pubblici, cioè servizi,
operazioni offerte dalla classe sullo stato
4. Eventualmente campi e metodi static
L'insieme dei costruttori e dei metodi pubblic
rappresenta l'interfaccia della classe.
Programmazione I B - a.a. 2007-08 15
8
Ricordatevi! (I)
Java e` il linguaggio (inteso come sintassi, ambiente di
programmazione, librerie, ecc.): noi scriviamo codice in Java
Ricordatevi! (II)
Il file .class che si da’ in input all’interprete java deve contenere
una classe (class) che contenga un main (dichiarato
esattamente come abbiamo visto negli esempi)