Corso Java Base (2): variabili

Generalmente i programmi, durante la loro esecuzione, gestiscono diversi “valori” (ad esempio un programma che simula una calcolatrice elettronica compiendo addizioni, sottrazioni etc..) i quali possono variare durante l’esecuzione del programma stesso; è necessario, quindi, riuscire a gestire tutti i “valori” utilizzati. Tornando all’esempio della calcolatrice, quando inseriamo un “valore” da usare in un calcolo, per gestire tale valore il programma lo memorizza temporaneamente nella memoria del computer. Questa rappresentazione, ovviamente modificabile quando necessario, viene chiamata variabile.

Quando si dichiara una variabile per prima cosa il compilatore riserva ad essa un’area di memoria. Affinché questa operazione avvenga con successo il compilatore ha bisogno di due informazioni relative alla variabile da memorizzare: il nome ed il tipo di valore, oltre al valore stesso.

Per questo la forma generica per definire una variabile è:

TipoVariabile NomeVariabile

Tipi di variabile

Il linguaggio di programmazione Java definisce i seguenti tipi di variabili:

1) Variabili locali: sono quelle variabili che vengono dichiarate ed utilizzate all’interno dei metodi di una classe, per questo motivo la loro visibilità è limitata al metodo nel quale vengono dichiarate; in altre parole all’esterno di esso non potranno essere utilizzate.

public void printTime(){
   //la variabile di tipo stringa formattedDate è una variabile locale
   String formattedDate = df.format (new Date ());
   System.out.println(formattedDate);
}

2) Variabili di istanza: sono dichiarate all’interno di una definizione di classe, esternamente alle dichiarazioni dei metodi (si distinguono dalle variabili locali sulla base della loro posizione, poiché le variabili locali sono dichiarate all’interno dei metodi).

public class Punto3d { 
    //x, y, z sono variabili di istanza
    public double x;
    public double y = 3.0;
    public double z; 
}

 

3) Variabili di classe (static): sono variabili dichiarate con il modificatore static, come tali appartengono, con lo stesso valore a tutte le istanze della classe.

public class SumCollector{
//le variabili sum e maxObject sono variabili di classe
static int sum;
static final int maxObjects = 10;
}

Nomi delle variabili

Ogni linguaggio di programmazione ha una propria serie di regole e convenzioni per i tipi di nomi che si possono utilizzare in relazione alle variabili ed il linguaggio di programmazione Java non è da meno.

Le regole per denominare le variabili possono essere riassunte come segue:
– I nomi delle variabili sono case-sensitive, ovvero distinguono le lettere maiuscole dalle minuscole.
– Il nome di una variabile può avere come primo carattere una lettera, il simbolo del dollaro “$” o il carattere di sottolineatura “_”. La convenzione, comunque, è quella di iniziare i nomi delle variabili utilizzando una lettera. Non è permesso lasciare spazi vuoti all’interno dei nomi delle variabili.
– I caratteri successivi al primo possono essere lettere, cifre, simboli del dollaro, o caratteri di sottolineatura. Per convenzione i nomi per le variabili non dovrebbero essere abbreviati o risultare in qualche modo criptici affinché il codice possa essere più facile da leggere e da capire.

Se il nome della variabile si compone di più parole allora è convenzione che le due parole vengano unite e che la seconda inizi con la lettera maiuscola, ad esempio se volessimo dichiarare una variabile di tipo stringa:

String miaVariabile

 

Tipi primitivi

Il linguaggio di programmazione Java è fortemente tipizzato, il che significa 

che tutte le variabili devono essere dichiarate prima di poter essere utilizzate.

 

Come già detto la dichiarazione di una variabile consiste nello specificare il tipo di variabile, il nome ed eventualmente il valore.

int numero = 1;

In questo caso è dichiarata una variabile di tipo int denominata numero ed inizializzata con il valore 1.

Il tipo di dati di una variabile determina i valori che può contenere e le operazioni che possono essere eseguite su di essa. Oltre a int, il linguaggio di programmazione Java supporta altri sette tipi primitivi di dati. Un tipo primitivo è predefinito dal linguaggio e prende il nome da una parola chiave riservata. Gli otto tipi primitivi di dati supportati dal linguaggio di programmazione Java sono:

1) byte: Il tipo di dati byte è un formato di 8-bit. Esso può assumere un valore minimo di -128 ed un valore massimo 127 (inclusi). L’intervallo è dell’ampiezza possibile con una sequenza di 8-bit.

2) short: il tipo di dati short è un formato di 16-bit. Esso può assumere un valore minimo di -32.768 ed un valore massimo di 32.767 (inclusi). Questo tipo di dato è probabilmente il meno utilizzato.

3) int: Il tipo di dati int è a 32-bit e può assumere un valore minimo di -2.147.483.648 ed un valore massimo di 2.147.483.647 (inclusi). Per i valori interi, questo tipo di dato è generalmente il più utilizzato, a meno che non ci sia una ragione per scegliere un altro tipo.

4) long: Il tipo di dati long è a 64-bit e può assumere un valore minimo di -9.223.372.036.854.775.808 e un valore massimo di 9.223.372.036.854.775.807 (compresi). Si utilizza questo tipo di dato quando è necessario un intervallo di valori più ampio, rispetto a quello fornito dal tipo int.

5) float: Il tipo di dati float è a 32 bit e può lavorare su numeri positivi e negativi in virgola mobile, tra 1.40129846432481707*10-45 e 3.40282346638528860*10^38.

6) double: Il tipo di dati double è a 64 bit e può lavorare su numeri positivi e negativi in virgola mobile, compresi tra 4.94065645841246544*10-324 e 1.79769313486231570*10308.

7) boolean: ha solo due possibili valori: true e false, questo tipo di dato si utilizza per determinare lo stato di una determinata condizione (che può essere appunto vera o falsa).

8) char: In Java, il tipo di dati char usa 16 bit per ogni carattere, e usa il codice UNICODE, che permette di rappresentare 216 = 65536 caratteri.