Un tipo di dati è un’insieme di valori e di operazioni definite su tali valori.
N.B.: in Java sono statici, cioè il tipo di una variabile non può mai cambiare finché essa rimane in memoria.
Tipi di dati di base (o primitivi)
Sono built-in, cioè predefiniti (di default) nel linguaggio. NON SONO OGGETTI (nemmeno in Java).
N.B.: E’ fondamentale essere a conoscenza di quali siano i tipi di base e quali non lo siano per ragioni di efficienza e di allocazione della memoria.
In Java sono:
| Tipo | Dominio | Operatori | Dimensione |
|---|---|---|---|
| byte | 1 byte | ||
| boolean | true o false | && || ! | 1 byte |
| char | tutti i caratteri unicode | + - | 2 byte |
| short | interi | 2 byte | |
| int | interi | + - * / % | 4 byte |
| float | parte intera: ±1038, parte frazionaria: circa 7 cifre decimali significative | 4 byte | |
| long | interi | 8 byte | |
| double | parte intera: ±10308, parte frazionaria: circa 15 cifre decimali significative | + - * / % | 8 byte |
| String* | sequenze di caratteri unicode | + | variabile |
N.B.: le stringhe non sono veramente primitive, ma si possono trattare come tali, perché non hanno bisogno dell’operatore
newper essere inizializzati
Tipi derivati: Oggetti
Al momento della creazione dell’oggetto i campi di una classe sono inizializzati automaticamente.
| Tipo del campo | Inizializzato implicitamente a |
|---|---|
| int, long | 0, 0L |
| float, double | 0.0f, 0.0 |
| char | ’\0’ |
| boolean | false |
| classe X | null |
N.B.: le inizializzazioni sono automatiche per i campi di una classe, ma NON per le variabile locali dei metodi.
tipi generici
La parola chiave var
N.B.: NON LA DEVI USARE MAIIII!!! SE LO USI LA GENTE MUORE!!! (cit. Faralli)
Esempio:
var k = 10; // equivale a int k = 10
var s = "ciao"; // equivale a String s = "ciao"
var p = new Pippo(); // equivale a Pippo p = new Pippo()