Upload
stefania-poletti
View
246
Download
4
Embed Size (px)
Citation preview
Java base I:Java base I:Sintassi e tipi di datiSintassi e tipi di dati
Argomenti
• Elementi fondamentali della sintassi Java
• Tipi di dati di Java
• Gli operatori
Obiettivi
• Familiarizzare con la sintassi Java
• Conoscere i tipi di dati
• Conoscere gli operatori
Java è un linguaggio Java è un linguaggio ImperativoImperativo
orientato al comando orientato al comando
variabilevariabilecostantecostante
operatoreoperatore
ESPRESSIONEESPRESSIONE
COMANDOCOMANDO
METODOMETODO
CLASSECLASSE
PACKAGEPACKAGE
aa ++ 11
SempliceSemplice a+1;a+1;
CompostoComposto if(a>1)if(a>1) b=a+1;b=a+1;
Per separare gli elementi è Per separare gli elementi è necessario utilizzare almeno uno necessario utilizzare almeno uno
spazio,una tabulazione o un a capospazio,una tabulazione o un a capo
1 riga per ogni comando1 riga per ogni comando
C LIKEC LIKE
I I commenticommenti in Java in Java
3 tipi3 tipi
Testo che non viene preso in Testo che non viene preso in considerazione dal compilatoreconsiderazione dal compilatore
//// /* ... *//* ... */ /** ... *//** ... */
Commenta tutto il Commenta tutto il codice fino a fine codice fino a fine
rigariga
Tutto il testo racchiuso tra questi Tutto il testo racchiuso tra questi delimitatori viene considerato delimitatori viene considerato
commentocommento
Definisce un commento Definisce un commento che viene elaborato da che viene elaborato da
javadocjavadoc
Utility per la Utility per la documentazione del documentazione del
codicecodice
Le variabili in JavaLe variabili in Java
Una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato
Java è un linguaggio fortemente tipizzatoJava è un linguaggio fortemente tipizzato
Ogni variabile deve essere di un certo Ogni variabile deve essere di un certo tipotipo identificabileidentificabile
PrimitivePrimitive
OggettiOggetti
Dichirazione di una variabile [tipo] [nome_variabile];
Assegnazione di una variabile [nome_variabile] = [valore];
[tipo] [nome_variabile] = [valore];
I dati primitiviI dati primitivi
Java mette a disposizione 8 tipi8 tipi di dati primitivi utili alla definizione dioggetti più complessi
Numeri interiNumeri
in virgola mobilechar
(tipo carattere)boolean
byteshortint
long
floatdouble
Dimensione prefissataDimensione prefissata
INDIPENDENTE DALLA PIATTAFORMAINDIPENDENTE DALLA PIATTAFORMA
Tipi numeri interiTipi numeri interi
TipoTipo Requisiti di Requisiti di memorizzazionememorizzazione
Valori di Valori di DefaultDefault
Intervallo (inclusivo)Intervallo (inclusivo)
bytebyte 1 byte (8 bit)1 byte (8 bit) 0 Da –128 a +127
shortshort 2 byte (16 bit)2 byte (16 bit) 0 Da –32.768 a +32.767
intint 4 byte (32 bit)4 byte (32 bit) 0 Da –2.147.483.648 a +2.147.483.647
longlong 8 byte (64 bit)8 byte (64 bit) 0L da -9 miliardi di miliardi a 9 miliardi di miliardi
Tipi numeri in virgola mobileTipi numeri in virgola mobile
TipoTipo Requisiti di Requisiti di memorizzazionememorizzazione
Valori di Valori di DefaultDefault
IntervalloIntervallo
floatfloat 4 byte4 byte 0.0F 6-7 cifre decimali significative
doubledouble 8 byte8 byte 0.0 15 cifre decimali significative
Tipo charTipo char
Le variabili char contengono un unico carattere
Le costanti di tipo char sono racchiuse tra apici singoli (‘’)
Il carattere rappresentato è un carattere dello schema di codifica Unicode. I caratteri Unicode comprendono tutti I caratteri ASCII,caratteri di alfabeti latini e non, caratteri particolari non inclusi nello schema ASCII
Il carattere Unicode occupa 2 byte e consente quindi di rappresentare 65536 caratteri diversi
Indicazione carattere Unicode: \uXXXX, con XXXX numero Hex
Per indicare alcuni caratteri speciali si utilizzano delle sequenze di escape
Tipo char (2)Tipo char (2)
Caratteri speciali
Sequenza di escape Nome Valore Unicode
\b Backspace \u0008
\t Tabulazione \u0009
\n Avanzamento di riga \u000a
\r Ritorno carrello \u000d
\” Virgolette doppie \u0022
\’ Virgolette singole \u0027
\\ Barra rovesciata \u005c
Tipo booleanTipo boolean
• Puo’ avere soltanto 2 valori : true o false (sono entrambe parole riservate)
• Tutti gli operatori comparativi (come ad esempio a>b) restituiscono un valore boolean
• Valori boolean sono richiesti dalle istruzioni di controllo di flusso (if, while, do-while)
In C/C++ non esiste il tipo boolean
In Java non è possibile convertire un valore booleano in un valore numerico
Inizializzato a false
DichiarazioneDichiarazione e e InizializzazioneInizializzazione
Tutte le variabili prima di essere Tutte le variabili prima di essere utilizzate devono essere dichiarateutilizzate devono essere dichiarate
TIPO NOME
Spesso alla variabile deve esser assegnato un valore
iniziale
Altrimenti viene assegnato Altrimenti viene assegnato valore di Defaultvalore di Default
Dichiarazione e Dichiarazione e inizializzazione possono inizializzazione possono essere fatti nella stessa essere fatti nella stessa
rigariga
Inizia con carattere Inizia con carattere minuscolominuscolo
Evitare uso underscoreEvitare uso underscore
Si possono usare numeri Si possono usare numeri (non all’inizio)(non all’inizio)
Se più parole, la prima lettera Se più parole, la prima lettera è sempre maiuscolaè sempre maiuscola
Le parole riservateLe parole riservate
Sequenze di caratteri che non possono essere usate come identificatori
Le costanti in JavaLe costanti in Java
Non esistono
Vengono dichiarate della variabili con l’attributo FINALFINAL
Se vengono utilizzate da più classi si usa anche la parola
chiave STATICSTATIC
Uso dell’underscore per separare le parti del nome.
I nomi delle costanti sono tutte in MAIUSCOLO
ConvenzioniConvenzioni
final double WINDOW_WIDTH = 300; final double WINDOW_WIDTH = 300;
Visibilità variabiliVisibilità variabili
• In Java i blocchi di istruzioni sono contrassegnati da due parentesi graffe:
{
//codice del blocco di istruzioni
}
Le variabili sono valide dal punto in cui sono dichiarate sino alla fine del blocco di istruzioni racchiuso tra le parentesi
Gli Operatori (1)Gli Operatori (1)
Sono caratteri speciali per istruire il compilatore Sono caratteri speciali per istruire il compilatore sull’operazione che deve compiere con alcuni sull’operazione che deve compiere con alcuni operandioperandi
variabili
espressioni
valori costanti
5 categorie5 categorie
Monadici (unari) Agiscono su un solo operandoAgiscono su un solo operando
Diadici (binari) Posti tra 2 operandiPosti tra 2 operandi
Ternari Agiscono su 3 operandiAgiscono su 3 operandi
Suffissi Posti dopo l’operandoPosti dopo l’operando
Prefissi Posti prima dell’operandoPosti prima dell’operando
Gli Operatori (2)Gli Operatori (2)
Java possiede Java possiede 4444 operatori predefiniti,divisi in operatori predefiniti,divisi in 44 categorie base:categorie base:
AritmeticiAritmetici
RelazionaliRelazionali
Bitwise Bitwise (binari su numeri interi)(binari su numeri interi)
LogiciLogici
Gli operatori aritmeticiGli operatori aritmetici
+ - * /+ - * /Divisione per interi se entrambi gli argomenti sono interi e la divisione di numeri in virgola mobile in tutti gli altri casi
BinariBinari
UnariUnari
++++ incrementa la variabile di 1
---- decrementa la variabile di 1
Notazione postfissa Notazione prefissa
count =5;
restituisce 5 e incrementa count
count++; ++count;
incrementa count e restituisce 6;
Gli operatori relazionaliGli operatori relazionaliConfrontano i due operandi determinando la Confrontano i due operandi determinando la
relazionerelazione che intercorre tra di essi che intercorre tra di essi
Operatore Risultato
== Uguale a
!= Diverso da
> maggiore
< minore
>= Maggiore o uguale
<= Minore o uguale
Attenzione alla differenza
Errore di compilazioneErrore di compilazione3=73=7
Restituisce FalseRestituisce False3==73==7
A tutti i tipi primitiviA tutti i tipi primitivi
Ai RiferimentiAi Riferimenti
Gli operatori Logici o BooleaniGli operatori Logici o Booleani
Eseguono operazioni logiche tra gli operandiEseguono operazioni logiche tra gli operandi
Operatore Risultato
|||| OR
&&&& AND
!! NOT
==== Uguale a
!=!= Non uguale a
op1 && op2
op1 | | op2
! op1
op1 == op2
op1 != op2
Gli operatori BitwiseGli operatori BitwisePermettono di effettuare operazioni booleane per Permettono di effettuare operazioni booleane per
ciascun bit degli operandiciascun bit degli operandi
Non sono da utilizzare come operatori logiciNon sono da utilizzare come operatori logici
&&
||
^̂
~~
ANDAND
OROR
XORXOR
NOTNOT
+= += op1 += op2 op1 = op1 + op2;
-=-= op1 -= op2 op1 = op1 - op2;
*=*= op1 *= op2 op1 = op1 * op2;
/= /= op1 /= op2 op1 = op1 / op2;
%=%= op1 %= op2 op1 = op1 % op2;
&=&= op1 &= op2 op1 = op1 & op2;
Gli operatori di AssegnamentoGli operatori di Assegnamento
Abbreviazioni delle istruzioni per assegnare o modificareAbbreviazioni delle istruzioni per assegnare o modificareIl valore delle variabiliIl valore delle variabili
int i = 0;
i = i + 2;i += 2;
L’operatore di L’operatore di CASTCAST
Convertire un valore da un tipo ad un altro
compatibilità tra i due tipi di dati
Il cast (tipo) si applica sia a tipi primitivi (int, char,…) che ad oggetti
int x=3; double d=4.2;double dd;
Esempio:
dd = (double) x; converte il valore di x in double
x = (int) d; converte e approssima il valore di d
Promozioni da un tipo ad uno più ampio sono permesse implicitamente.
Non sono permesse conversioni implicite a tipi più ristretti.