Variabili Java
Upcoming SlideShare
Loading in...5
×
 
  • 6,776 views

differenza tra le variabili primitive e quelle di riferimento in java

differenza tra le variabili primitive e quelle di riferimento in java

Statistics

Views

Total Views
6,776
Views on SlideShare
6,710
Embed Views
66

Actions

Likes
0
Downloads
25
Comments
0

4 Embeds 66

http://didatticasilvanonatalizi.blogspot.com 42
http://didatticasilvanonatalizi.blogspot.it 18
http://www.slideshare.net 4
http://www.didatticasilvanonatalizi.blogspot.com 2

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Variabili Java Variabili Java Presentation Transcript

  • Le Variabili in Java 5° parte del modulo Programmazione ad Oggetti Lezione 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?
    • Le variabili devono avere un nome
    • 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 primitive
    • 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
    Dichiarazione 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;
  • 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