1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico,...

32
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile e output a video

Transcript of 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico,...

Page 1: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

1

Corso di Informatica

(Programmazione)

Lezione 7 (5 novembre 2008)

Programmazione in Java:lessico, variabili, tipi primitivi,

assegnamento a variabilee output a video

Page 2: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

2

Il lessico di JavaGli elementi lessicali sono le più piccole unità che compongono la grammatica di Java (e di un linguaggio in generale). Essi sono:

parole chiave riservate al linguaggio (ad esempio public, class, static, etc.)

caratteri speciali (ad esempio {, }, =, +, etc.)

identificatori

stringhe (sequenze di caratteri)

numeri senza segno

Page 3: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

3

Il lessico di JavaLe parole chiave sono parole riservate al linguaggio che non possono essere usate per gli identificatori:

ifelsewhiledoforswitchcasebreakfinallycontinuelabeltransient

shortbyteintcharlongfloatdoublebooleanthissuperinterfaceextends

voidreturnsynchronizedclassnewstaticabstract finalnativeprivateprotectedpublic

packagevolatiledefaultimplementsimportinstanceof(goto)(const)trycatchthrowthrows

Page 4: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

4

Il lessico di JavaI separatori sono caratteri speciali che permettono di raggruppare o separare parti di codice:

Parentesi graffe { } separano blocchi di codice

Parentesi tonde ( ) specificano i parametri delle funzioni (o metodi)

Parentesi quadre [ ] identificano gli elementi di un array (o vettore)Un’istruzione è la descrizione di una certa operazione

Un blocco di codice è la sequenza di una o più istruzioni

Page 5: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

5

Il lessico di Java…

Punto e virgola ; separa le istruzioni (tutte le istruzioni devono terminare con ;)

Virgola , separa i valori (parametri) quando si richiamano le funzioni (o metodi)

Punto . usato per richiamare i metodi di una classe

Un’istruzione è la descrizione di una certa operazioneUn blocco di codice è la sequenza di una o più istruzioni

Page 6: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

6

Il lessico di JavaUn identificatore è un nome che il programmatore associa univocamente a:

una classe

una variabile

un metodo

un oggetto

Page 7: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

7

Il lessico di JavaUn identificatore è una sequenza di caratteri alfanumerici che deve soddisfare le regole seguenti:

non deve iniziare con una cifra numerica

non deve contenere spazi

deve contenere solo lettere (maiuscole e minuscole), cifre numeriche (da 0 a 9), il carattere di underscore (_) e il carattere $

non sono quindi ammessi caratteri speciali quali |, &, *, etc.

Page 8: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

8

Il lessico di Java…

non deve essere una parola chiave del linguaggio

ATTENZIONE!

gli identificatori sono case sensitive (ad esempio

l’identificatore MioProgramma è diverso da

mioProgramma)

Page 9: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

9

Identificatore di classepublic class MioProgramma {

public static void main(String arg[]) {System.out.println(“Hello world!”);

}}

La convenzione per attribuire ad una classe un identificatore è la seguente:

deve rappresentare bene ciò che la classe descrive (ciò che il programma compie)

deve iniziare con una lettera maiuscola

se l’identificatore è composto da più parole, ogni parola deve iniziare con la lettera maiuscola

Page 10: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

10

I commentiI commenti sono annotazioni del programmatore che il compilatore ignora e che quindi non traduce:

commento delimitato da /* e */ il testo compreso tra /* e */ viene ignorato dal compilatore

commento a fine riga iniziato dalla coppia // tutto il testo dopo // e che termina a fine riga, viene ignorato dal compilatore

Page 11: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

11

I commentiEsempio di commenti

public class MioProgramma {public static void main(String arg[]) {

/*Questo programma stampa a videola scritta Hello world! Questo èun commento su più righe*/

//Questo è un commento su una riga

System.out.println(“Hello world!”);}

}

Page 12: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

12

Le variabiliIn generale una variabile è un simbolo che può assumere un valore appartenente a un dato insieme di definizione.

Ad esempio se l’insieme di definizione è l’insieme degli interi positivi I+ e x è una variabile definita su I+, allora x può assumere solo i valori che vanno da 1 a

Page 13: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

13

Le variabiliIn Java una variabile è una precisa locazione di memoria sul calcolatore:

che possiede un identificatore

in cui viene memorizzato un valore di un certo tipoPrima di poter usare una variabile occorre effettuarne la dichiarazione:

assegnandole un identificatore (nome) attraverso cui accedere al suo contenuto

specificandone il tipo di valore che dovrà contenere

Page 14: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

14

Dichiarazione di variabiliLa dichiarazione di una variabile ha la seguente forma:

<tipo> <identificatore>;

Esempio di dichiarazione di una variabile intera:

int isVariable;

Parola chiave che identifica i numeri interi con segno

Identificatore (nome) della variabile

Page 15: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

15

Dichiarazione di variabiliLa dichiarazione di una variabile può comprendere anche l’inizializzazione del suo contenuto:

<tipo> <identificatore>=<valore>;

Esempio di dichiarazione di una variabile intera con inizializzazione:

int isVariable=100;

Page 16: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

16

Dichiarazione di variabiliPiù variabili dello stesso tipo possono fare parte di una dichiarazione multipla :

<tipo> <id1>, <id2>, …, <idn>;Esempio di dichiarazione di tre variabili intere senza e con inizializzazione:

int isVar1, isVar2, isVar3;

int isVar1=2, isVar2=10, isVar3=100;

Page 17: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

17

Identificatore di variabileLa convenzione per attribuire ad una variabile un identificatore è la seguente:

deve rappresentare bene ciò che la variabile rappresenta

deve iniziare con una lettera minuscola

se l’identificatore è composto da più parole, ogni parola (eccetto la prima) deve iniziare con la lettera maiuscola

non deve contenere il carattere $

Page 18: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

18

I tipi di datiUn tipo di dati determina:

il valore che una variabile (di un determinato tipo) può contenere

le operazioni che possono essere effettuate su una variabile (di un determinato tipo)

In Java esistono due categorie di tipi di dati:

tipi primitivi i più semplici e non ulteriormente scomponibili

tipi non primitivi complessi e composti da altri tipi di dati (a loro volta primitivi e non). Ad esempio: classi, interfacce, array

Page 19: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

19

NomeTipo di

valore

Memoria usata

Range di valori

byte

intero

8 bit (1 byte) -128, +127

short 16 bit (2 byte) -32768, +32767

int 32 bit (4 byte)-2.147.483.648, +2.147.483.647

long 64 bit (8 byte)

-9.223.372.036.854.775.808

, +9.223.374.036.854.775.8

08

I tipi di primitivi interi

Page 20: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

20

NomeTipo di valore

Memoria usata

Range di valori

float floating point

(virgola mobile)

32 bit (4 byte)+/- 3,4028… x

10+38,+/- 1,4023… x 0-45

double 64 bit (8 byte)+/- 1,767… x

10+308, +/- 4,940… x 0-324

charsingolo

carattere16 bit (2 byte) tutti i caratteri Unicode

boolean true o false 1 bit true, false

Gli altri tipi di primitivi

Page 21: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

21

I tipi primitivi (un esempio)public class EsempioDichiarazione {

public static void main(String arg[]) {

byte isByte;short isShort;int isInt;long isLong;float isFloat;double isDouble;char isChar;boolean isBoolean;

}}

Page 22: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

22

Letterali stringa e carattereLetterale stringa sequenza di caratteri racchiusa tra doppi apici “”

esempio: “Hello world!” è un letterale stringa composto da 12 caratteri

Letterale carattere carattere appartenente al codice Unicode racchiuso tra singoli apici ‘’

esempio: ‘a’ è un letterale carattere

Attenzione! La scrittura ‘a’ denota un singolo carattere, mentrela scrittura “a” denota una stringa composta di un singolo carattere

Page 23: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

23

Operatore di assegnamento ‘=‘L’operatore di assegnamento ‘=‘ permette di assegnare un valore ad una variabile dopo la sua dichiarazione. L’istruzione di assegnamento ha la seguente forma:

<identificatore>=<valore>;

Il valore assegnato ad una variabile deve essere dello stesso tipo della variabile

Page 24: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

24

Operatore di assegnamento ‘=‘ (un esempio)public class EsempioAssegnamento {

public static void main(String arg[]) {

byte isByte;short isShort;int isInt;long isLong;float isFloat;double isDouble;char isChar;boolean isBoolean;

isByte=98;isShort=20000;isInt=1000000000;isLong=1000000000000;isFloat=2.567;isDouble=0.0000001;isChar=‘a’;isBoolean=true;

}}

Page 25: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

25

Operatore di assegnamento ‘=‘Come si è già visto, il valore può essere anche assegnato alla variabile nell’ambito della sua dichiarazione per inizializzarne il contenuto:

<tipo> <identificatore>=<valore>;

Attenzione! E’ una buona abitudine assegnare ilvalore ad una variabile o quando la si dichiara

(inizializzazione in fase di dichiarazione) o comunque prima di usarla. Il Contenuto di una variabile solo

dichiarata è INDEFINITO

Page 26: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

26

Operatore di assegnamento ‘=‘ (un esempio)

public class EsempioInizializzazione {public static void main(String arg[]) {

byte isByte=98;short isShort=20000;int isInt=1000000000;long isLong=1000000000000;float isFloat=2.567;double isDouble=0.0000001;char isChar=‘a’;boolean isBoolean=true;

}}

Page 27: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

27

Output a video

Le due istruzioni di output a video sono:

System.out.print(<print_str>);

che stampa a video ciò che è specificato da <print_str> e

System.out.println(<print_str>);

che stampa a video ciò che è specificato da <print_str> e va a capo

Page 28: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

28

Output a video (un esempio)Il seguente codice:int x;x=3;System.out.println(“x vale “+x);

stampa a video la stringa:x vale 3

e va a capo. Il contenuto di x (l’intero 3) viene convertito nella stringa “3” e poi concatenato a “x vale “ per ottenere la stringa “x vale 3” da stampare a video

Page 29: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

29

Output a video (un esempio)Il seguente codice:int x;x=3;int y=4;System.out.println(“x vale “+x+” e y vale “+y);

stampa a video la stringa:x vale 3 e y vale 4

e va a capo. I contenuti di x e y (interi 3 e 4) vengono trasformati rispettivamente nelle stringhe “3” e “4” prima di effettuare la concatenazione di “x vale “, di “3”, di “ e y vale “ e di “4”

Page 30: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

30

Output a video (un esempio)Il seguente codice:int x=3;int y=4;System.out.println(x+y);

stampa a video la stringa:7

e va a capo. In questo caso viene effettua prima la somma dei contenuti di x e y (3+4=7) e poi il risultato intero viene convertito nella stringa “7” da stampare a video

Page 31: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

31

Output a video (un esempio)Il seguente codice:int x=3;int y=4;System.out.println(“Valori “+x+y);

stampa a video la stringa:Valori 34

e va a capo. I contenuti di x e y (interi 3 e 4) vengono convertiti nelle stringhe “3” e “4” e poi concatenati alla stringa “Valori “ per ottenere la stampa di “Valori 34”

Page 32: 1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.

32

Output a videoRiassumendo, l’operatore + usato nell’argomento delle funzioni di output a video, tenta prima di convertire tutti gli operandi in un unico tipo e successivamente esegue una somma, se gli operandi convertiti sono tutti numeri, o una concatenazione, se gli operandi convertiti sono tutti stringhe. Se anche solo uno degli operandi iniziali è una stringa, allora gli operandi convertiti saranno tutti stringhe.