oggetti e dati primitivi di dati primitivi numerici la differenza tra i diversi tipi di dato per...
TRANSCRIPT
![Page 1: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/1.jpg)
Java e i Tipi di dati primitivi
Parte 3
![Page 2: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/2.jpg)
La nozione di tipo di datoLa nozione di tipo di dato
Il tipo del dato consente di esprimere la natura del dato
Indica il modo con cui verrà interpretata la sequenza di bit che rappresenta il dato
La stessa sequenza può rappresentare un intero o un carattere adesempio
Determina il campo dei valori che un dato può assumere
Specifica le operazioni possibili sui dati
![Page 3: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/3.jpg)
Tipi di dati e JavaTipi di dati e Java
Java è un linguaggio fortemente tipizzato
Il tipo di ogni variabile o espressione può essere identificato leggendo il programma ed è già noto al momento della compilazione
È obbligatorio dichiarare il tipo di una variabile prima di utilizzarla
Dopo la dichiarazione non è possibile assegnare alla variabile valori di tipo diverso
![Page 4: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/4.jpg)
Tipi di datoTipi di dato
Ogni tipo di dato ha:
Un nome int, double, charUn insieme di valori letterali possibili 3, 3.1, ‘c’Un insieme di operazioni lecite + *In Java ci sono:
Tipi sempliciTipi di oggetti o riferimenti a oggetti
![Page 5: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/5.jpg)
Tipi di dati primitivi sempliciTipi di dati primitivi semplici
Tipi di dati primitivi (8) per rappresentare:
numeri interi byte, short, int, longnumeri decimali in virgola mobile float, doublei caratteri chari valori booleani boolean
![Page 6: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/6.jpg)
Tipi di dati primitivi numericiTipi di dati primitivi numerici
La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria
E quindi nel valore che possono rappresentare:
Tipo
byteshort
intlong
floatdouble
Tipo
byteshort
intlong
floatdouble
Memoriain byte
1248
48
Memoriain byte
1248
48
Valore min
-128-32,768-2,147,483,648< -9 x 1018
+/- 3.4 x 1038 con 7 cifre significative+/- 1.7 x 10308 con 15 cifre significative
Valore min
-128-32,768-2,147,483,648< -9 x 1018
+/- 3.4 x 1038 con 7 cifre significative+/- 1.7 x 10308 con 15 cifre significative
Valore max
12732,7672,147,483,647> 9 x 1018
Valore max
12732,7672,147,483,647> 9 x 1018
![Page 7: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/7.jpg)
Operatori sui tipi aritmeticiOperatori sui tipi aritmetici
10 % 3 = 1Resto%
10 / 3 = 3Divisione/
7000 * 3 =21000Moltiplicazione*
657 – 57 = 600Sottrazione-
45 + 5 = 50Somma+byte, short, int,
long
9.6e01 / 2e01 = 4.8e00Divisione/
7e03 * 3.0e00 = 2.1e04Moltiplicazione*
6.57e02 – 5.7e01 = 6.00e02Sottrazione-
4.50e01 + 5.30e00 = 5.03e01Somma+float, double
esempioOperazionesimbolotipo
![Page 8: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/8.jpg)
La rappresentazione dei caratteri
![Page 9: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/9.jpg)
Il tipo booleanIl tipo boolean
Un valore boolean rappresenta una condizione di verità o falsità
Una variabile di tipo boolean può rappresentare un valore a due stati
come un interrutore che è acceso o spento
Le parole riservate true e false sono gli unici valori ammessi per il tipo boolean
boolean eseguito = false;
![Page 10: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/10.jpg)
Espressioni aritmeticheEspressioni aritmetiche
Una espressione è una combinazione di operatori e operandi
Una espressione aritmetica calcola valori numerici e usa operatori aritmetici:
somma +sottrazione -moltiplicazione *divisione /resto %
somma +sottrazione -moltiplicazione *divisione /resto %
Se uno o entrambi glioperandi di un operatore sono di tipo virgola mobile, il risultato è di tipo virgola mobile
Se uno o entrambi glioperandi di un operatore sono di tipo virgola mobile, il risultato è di tipo virgola mobile
![Page 11: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/11.jpg)
Divisione e restoDivisione e resto
Se entrambi gli operandi dell’operatore / sono interi, il risultato è intero e la parte decimale è persa
L’operatore resto % riporta il resto della divisione
Esempio Divisione.java, dopo aver visto la classe keyboard
14 / 3 uguale a 414 / 3 uguale a 4
8 / 12 uguale a 08 / 12 uguale a 0
14 % 3 uguale a 214 % 3 uguale a 2
8 % 12 uguale a 88 % 12 uguale a 8
![Page 12: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/12.jpg)
Precedenza tra operatoriPrecedenza tra operatori
Gli operatori possono venire combinati in espressioni complesserisultato = totale + cont / max - scarto;
Gli operatori hanno una precedenza ben definita implicita che determina l’ordine con cui vengono valutati
Moltiplicazione, divisione e resto sono valutati prima di somma,sottrazione e concatenazione tra stringhe
Gli operatori che hanno la stessa precedenza sono valutati da sinistra a destra
Mediante le parentesi si può alterare l’ordine di precedenza
![Page 13: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/13.jpg)
Precedenza tra operatoriPrecedenza tra operatori
Ordine di valutazione dell’espressione:
a + b + c + d + e a + b * c - d / e1 2 3 4 3 1 4 2
a / (b + c) - d % e2 1 4 3
a / (b * (c + (d - e)))4 3 2 1
![Page 14: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/14.jpg)
Operatore di assegnamentoOperatore di assegnamento
Ha la precedenza più bassa di qualunque altro operatore
Prima si valuta l’espressione alla destra dell’operatore =
risposta = somma / 4 + MAX * altro;4 1 3 2
Poi il risultato è assegnato alla variabile alla sinistra
![Page 15: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/15.jpg)
Assegnamento, ancoraAssegnamento, ancora
I membri di destra e sinistra dell’operatore = (assegnamento) possono contenere la stessa variabile
dapprima, si aggiunge 1 al valore origanario della variabile
numero = numero + 1;numero = numero + 1;
Poi il risultato è immagazzinato come nuove valore della variabile(il vecchio valore è sovrascritto)
![Page 16: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/16.jpg)
Assegnamento in variabili di riferimentoAssegnamento in variabili di riferimento
Si consideri l’assegnamento x = y;
Se x e y sono variabili di tipo semplice, il risultato dell’istruzione sarà che il contenuto di y viene copiato come contenuto di x
Se x e y sono variabili di tipo oggetto e contengono il riferimento all’oggetto allora conseguenza dell’istruzione è che il riferimento di y viene copiato come contenuto di x
x e y riferiscono ora allo stesso oggetto
In entrambi i casi il contenuto della variabile y non cambia
![Page 17: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/17.jpg)
Librerie di classiLibrerie di classi
Una libreria è una collezione di classi che possono essere usate nei programmi
La standard library fa parte di ogni sistema di sviluppo Java
Queste classi NON fanno parte del linguaggio, ma vengono usate continuamente
La classe System e la classe String sono parte della libreria di classi standard di Java
Altre librerie possono essere prodotte da terze parti o sviluppate da voi stessi
![Page 18: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/18.jpg)
PackagesPackages
Le classi della libreria standard sono organizzate in pacchetti
Package
java.langjava.appletjava.awtjavax.swingjava.netjava.utiljava.textjava.math
Package
java.langjava.appletjava.awtjavax.swingjava.netjava.utiljava.textjava.math
Scopo
supporto generale allo sviluppoimportato automaticamente
creare applets per il webgrafica e interfacce graficheulteriori componenti grafiche per GUIcomunicazione di reteutilità varievisualizzare testo formattatoeseguire calcoli
Scopo
supporto generale allo sviluppoimportato automaticamente
creare applets per il webgrafica e interfacce graficheulteriori componenti grafiche per GUIcomunicazione di reteutilità varievisualizzare testo formattatoeseguire calcoli
![Page 19: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/19.jpg)
Dichiarazione di importDichiarazione di import
Per usare una classe di un pacchetto, si indica il suo nome per esteso
java.util.Random;
O si importa la classe e quindi si indica solo il nome della classe
import java.util.Random;
Per importare tutte le classi di un pacchetto si usa il carattere ‘jolly’ *
import java.util.*;
![Page 20: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/20.jpg)
Metodi statici di classeMetodi statici di classe
Alcuni metodi possono essere invocati tramite la classe, invece che tramite un oggetto della classe
Sono i metodi di classe o metodi statici
La classe Math contiene molti metodi statici, che eseguono diverse funzioni matematiche
Il valore assoluto, funzioni trigonometriche, radici quadrate, etc.
temp = Math.cos(90) + Math.sqrt(delta);
![Page 21: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/21.jpg)
La classe KeyboardLa classe Keyboard
La classe Keyboard non fa parte della libreria di classi standard di Java
E’ fornita per leggere facilmente l’input da tastiera
Esempi Echo.java e Quadratic.java
![Page 22: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/22.jpg)
AppletsApplets
Una applicazione Java è un programma stand-alone con un metodo main
Un applet è un programma Java che si intende trasferire su web ed eseguire tramite un browser
La classe che definisce un applet non ha un metodo main
Un applet può anche essere eseguito mediante lo strumentoappletviewer di Java SDK
La classe che definisce un applet estende la classe Applet
In questo usa il meccanismo della ereditarietà, un concetto orientato agli oggetti che si vedrà meglio in seguito
![Page 23: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/23.jpg)
Applets - 2Applets - 2
Un applet può fornire metodi per diverse funzioni
Ad esempio, il metodo paint che richiede come argomento un oggetto della classe Graphics è automaticamente eseguito per disegnare
Un oggetto Graphics definisce un contesto grafico in cui si possono disegnare forme e testi
La classe Graphics offre diversi metodi per disegnare e colorare diverse forme
![Page 24: Oggetti e dati primitivi di dati primitivi numerici La differenza tra i diversi tipi di dato per rappresentare numeri consiste nella occupazione di memoria E quindi nel valore che](https://reader030.vdocumenti.com/reader030/viewer/2022021722/5c675e7f09d3f23a018ba903/html5/thumbnails/24.jpg)
Applets - 3Applets - 3
Un applet è immerso in un file HTML file usando uno specialetag che faccia riferimento al file bytecode della classe applet
In effetti è il formato bytecode del programma che viene trasferito sulla rete
L’applet viene eseguito dall’interprete Java che è parte del browser