Rieccoci qui con il continuo della guida sul Java. Come al solito, prima di iniziare, ti informo che se non hai avuto delle esperienze precedenti con la programmazione con il linguaggio C/C++, non sarai in grado di seguire al meglio quanto segue se non leggi le puntate precedenti, che troverai i link qui sotto:
Bene, ora possiamo iniziare.
Nello scorso articolo, che troverai il link qui, abbiamo finito di vedere le varie cose che si possono fare con la println e iniziato a vedere le variabili, guardandole in un aspetto molto teorico.
Bene, oggi vedremo queste variabili in un aspetto pratico.
Le variabili che abbiamo visto la volta scorsa e che vedremo anche adesso, sono variabili primitive, semplici. Le variabili primitive sono delle variabili che possono memorizzare più valori.
Più avanti andremo a vedere questo tipo di variabili, che sono chiamati array o vettori.
Ma ora ritorniamo a noi.
Abbiamo detto che in una variabile è possibile memorizzare un valore. È anche possibile memorizzare il valore di un’altra variabile:
[java]
int pippo = 5;
int pluto = 44;
int asino = 47;
pluto = pippo;
pippo = asino;
System.out.println(pluto + "-" + pippo);
[/java]
Il programma stamperà:
5-47
Vediamo cos’è successo.
Ho creato 3 variabili intere. Una con il nome pippo, una pluto e una asino e le ho inizializzate con dei numeri.
Poi ho fatto le varie assegnazioni.
pluto che ha il valore di 44, gli ho assegnato il valore di pippo, che ha il valore 5.
pippo che ha il valore 5, gli ho assegnato il valore di asino, che ha il valore 47.
Poi ho fatto stampare il valore di pluto e di pippo.
Ora pippo ha il valore 47 e pippo il valore 5, come possiamo vedere dalla stampa di queste due variabili.
Con le variabili è possibile anche fare delle operazioni più o meno complesse:
[java]
float n1 = 2.5f;
float n2 = 44.2f;
float rSomma = (float) n1 + n2;
float rSottraz = (float) n1 – n2;
float rProdotto = (float) n1 * n2;
float rDivisione = (float) n1 / n2;
System.out.println("Somma ->" + rSomma);
System.out.println("Sottrazione ->" + rSottraz);
System.out.println("Prodotto ->" + rProdotto);
System.out.println("Divisione ->" + rDivisione);
[/java]
E il programma stamperà:
Somma ->46.7
Sottrazione ->-41.7
Prodotto ->110.5
Divisione ->0.056561086
Questo sistema ci fa evitare anche di dover fare calcoli all’interno del metodo di stampa. Questo permette innanzi tutto di risparmiare tempo e poi è una forma più bella di scrivere del codice.
Con le variabili è possibile effettuare anche delle operazioni più complesse, come ad esempio delle espressioni, proprio come avevamo visto sul metodo di stampa:
float espressione = n1 * (n2 + n1) + (n2 + (4 * n2));
Notiamo una cosa in particolare molto importante, ovvero che anche se le variabili n1 e n2 sono decimali, io nella variabile float non ho dovuto usare nessun casting. Questo perché non ho scritto esplicitamente i numeri in decimale. Quindi il casting va effettuato soltanto quando si scrivono specificatamente i valori non supportati dalla variabile.
Un esempio:
[java]
long nInt = 4445555544555555553l;
double numero = nInt;
[/java]
Anche se la variabile long dal nome nInt era molto grande, la variabile double non ha avuto bisogno di nessun casting.
Per sicurezza proviamo a stampare la variabile double numero:
4.4455555445555553E18
In questo caso ce lo stampa in notazione scientifica, in quanto il numero esce dalla portata massima effettiva dei double.
La E sta a significare che è una potenza. Il 18 a destra della E è l’esponente della potenza. Invece il numero a sinistra è la base della potenza.
Vediamo anche di stampare l’espressione nella variabile float:
System.out.println(espressione);
E il risultato è:
337.75
Ora vediamo una cosa un po’ strana:
[java]
int lettera = ‘a’;
int lettera1 = ‘A’;
int lettera3 = ‘b’;
int lettera4 = ‘B’;
System.out.println(lettera + " – " + lettera1 );
[/java]
E il programma stamperà:
97 – 65
Ma cos’è successo? Come delle lettere?
Eh si. Java supporta una tabella che si chiama Unicode. Unicode è una tabella che ha diversi valori numerici. Ogni valore numerico corrisponde a una lettera o a un carattere.
Ogni volta che digitiamo sulla tastiera del computer, o su quella dello smartphone una lettera, quella lettera premuta è in realtà un numero che poi viene controllato a quale lettera corrisponde e quindi noi visualizziamo una lettera.
Come possiamo ben vedere, le lettere minuscole e quelle maiuscole sono diverse, anche perché hanno entrambi un numero diverso.
Queste lettere o caratteri devono essere contenute all’interno di apici, proprio come facciamo con le variabili char.
ATTENZIONE: non è possibile ottenere valori numerici con le variabili char e non è possible eseguire calcoli con questo tipo di variabile.
Con le lettere possiamo fare le stesse cose che con i numeri, anche perché abbiamo appena visto che un carattere corrisponde a un numero.
Bene. Io direi che per oggi è sufficiente. La prossima volta andremo un po’ più avanti.
Ti invito a fare prove e test su quanto imparato oggi 🙂