Variabili Java
-
Upload
silvano-natalizi-itis-alessandro-volta-perugia -
Category
Education
-
view
4.674 -
download
0
description
Transcript of Variabili Java
Le Variabili in Java5° parte del modulo
Programmazione ad OggettiLezione sulle variabili del 17 novembre 2008
Per la classe IVA liceo tecnico – Prof. Silvano Natalizi
La terminologia delle variabili in Java In relazione al loro contenuto
Primitive di Riferimento (reference)
In relazione a dove le dichiariamo di istanza (la memoria dello stato dell’oggetto) locali (dichiarate dentro un metodo)
In relazione al loro essere di input o di output argomenti (input) valori restituiti (return types) (output)
In relazione alla loro complessità variabili semplici strutture dati (array…)
Ogni variabile è di un tipo Ogni dato è di un
preciso tipo Ad esempio:
Un numero intero è di tipo int
Un numero reale è di tipo double
Un cane pastore è un cane
Ogni variabile appartiene ad un tipo preciso di dato
Non si può memorizzare un dato in una variabile che non è del suo tipo
Java si preoccupa del tipo della variabile Java fa tutto un lavoro per la nostra sicurezza Non permette che si facciano cose bizzarre o
pericolose come quella di inserire un dato di un tipo in una variabile di un altro tipo ad esempio un numero decimale in una variabile di
tipo intero, a meno che concordiate con il compilatore di accettare la perdita di precisione insita in quella assegnazione di valore ( si perde la parte decimale del numero)
Inoltre il compilatore non permette altre cose del tipo Coniglio coniglio = new Giraffa()
Come potrei creare un coniglio con il metodo costruttore di una Giraffa ?
Dichiarazione di una variabile Per permettere a Java di fare tutto il lavoro di controllo sulle
variabili, dobbiamo dichiarare il tipo di variabile E’ un intero? E’ un singolo carattere? E’ una Giraffa?
1. Le variabili devono avere un nome2. Le variabili devono avere un tipo
La variabili possono essere degli oggetti Quando si dice un oggetto di tipo X,
il Tipo dell’oggetto e la Classe dell’oggetto sono esattamente la medesima cosa
Tipo dell’oggetto e Classe sono termini sinonimi
Variabili come contenitori Quando pensate alle variabili concretizzatele
quelle piccole con delle tazze (per il caffè, il latte, il tè…),
quelle grandi con dei bicchieri di birra giganti o con i contenitori di popcorn che i ruminanti si portano dietro nelle sale dei cinema
Una variabile è come una tazza, è come un contenitore, contiene qualcosa
Una variabile ha una dimensione ed un tipo Una variabile può contenere valori “primitivi”
oppure riferimenti agli oggetti
La grandezza di una variabile Se facciamo
l’analogia tra la grandezza di una variabile con quella dei coni di un gelato
Abbiamo coni piccoli, mediani, grandi…
Lo stesso vale per le variabili
La grandezza delle variabili primitive Le variabili primitive
sono quelle che contengono il valore della variabile (numeri, caratteri, vero/falso)
Le variabili primitive hanno diverse dimensioni
I quattro contenitori mostrati sono per i numeri interi, aventi diverse grandezza
Ogni contenitore ha un numero fisso di bit
I diversi tipi di variabili primitive
Tipo Bit Intervallo di valori
boolean … true/false
char 16 (0, 65536) caratteri alfanumerici
byte 8 (-128 , 127)
short 16 (-32768 ,32767)
Int 32 (-2147483648, 2147483647)
long 64 (-molto grande, + molto grande)
float 32 Numeri decimali
double 64 Numeri decimali più grandi
Dichiarazione ed assegnazione di valori alle variabili primitiveDichiarazione Assegnazione
int x; x=560;
byte b; b=89;
boolean isFun; isFun=true;
double d; d=4567.89;
char c; c=‘d’;
boolean powerOn;
powerOn=isFun;
int y; y=300;
int z; z=y;
Si può assegnare il valore ad una variabile in più modi.
Scrivendo un valore dopo il segno dell’uguale
Assegnare il valore di una variabile ad un’altra
Utilizzare un’espressione algebrica dopo l’uguale x=y+56
Il valore deve entrare nella variabile Non si può mettere un valore
grande in una tazza piccola Si può anche, ma a costo di
versare la parte che non c’entra Il compilatore cerca di evitare
questo se riesca a comprendere dal codice che qualcosa non può essere contenuto nella variabile
Ad esempio non si può mettere un valore di tipo int in una variabile di tipo byte: int x=24; byte b=x; non è accettato dal compilatore ! Ma come ? Noi sappiamo che 24 entra in una tazza di tipo byte! Il fatto è che il compilatore si preoccupa se noi
cerchiamo di mettere una grande cosa dentro una piccola, e c’è la possibilità di un traboccamento! Non aspettiamoci che il compilatore sappia quale è il valore di x, anche se è scritto letteralmente nel codice!
Il nome delle variabili Quali nomi possiamo usare per chiamare le
variabili? Il nome deve iniziare con una lettera, un
segno underscore _, o un segno di dollaro $ Non può iniziare con un numero Dopo il primo carattere si possono usare
anche numeri Il nome deve essere un nome comune
qualsiasi ad eccezione di parole riservate al linguaggio
Variabile di tipo oggetto (reference) Non esiste in realtà nessuna cosa che è una variabile
oggetto C’è solo una variabile riferimento all’oggetto Un riferimento contiene i bit che rappresentano un
modo per accedere all’oggetto Questa variabile non contiene l’oggetto, ma contiene
qualcosa simile ad un puntatore o ad un indirizzo dell’oggetto. Tuttavia, ad eccezione di java, nessuno sa cosa c’è dentro una variabile riferimento. Nessuno ha la possibilità di conoscerne il valore
Sappiamo solo che rappresenta uno ed un sol oggetto
Solo java sa come usarlo per trovare la strada per raggiungere l’oggetto
Variabile di riferimento e variabile primitiva Non si può mettere un oggetto dentro una
variabile Non esiste nessuna tazza gigante che si possa
espandere per contenere la dimensione di qualsiasi oggetto
Gli oggetti vivono in un solo posto Mentre una variabile primitiva è piena di bit
che rappresentano il valore effettivo della variabile, una variabile di riferimento è piena di bit che rappresentano un modo per ritrovare l’oggetto
Una variabile di riferimento come un telecomando Usiamo l’operatore “.” su
di una variabile di riferimento per inviare il messaggio: Usa la cosa prima del
punto per fare la cosa dopo il punto
Ad esempio: mydog.bark(); significa: usa l’oggetto
puntato dalla variabile myDog per invocare l’esecuzione del suo metodo bark().
Quando usi l’operatore “.” su di un riferimento, pensa al premere un bottone di un telecomando
Cosa è memorizzato in una variabile In una variabile è
memorizzato un valore In quelle primitive il
valore del numero o di un carattere o di ciò che la variabile significa
Pure nei riferimenti d’oggetto c’è un valore, qualcosa c’è nella tazza, ma questa volta il suo valore è un telecomando
Le tre fasi, dichiarazione, creazione, assegnamento di un oggetto
Fine della puntata