Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di...

19
Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino [email protected] http://www.di.unito.it/~guido

Transcript of Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di...

Page 1: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

JavaProgrammazione in Java

Guido BoellaDipartimento di InformaticaUniversita` degli Studi di TorinoC.so Svizzera, 185 I-10149 Torino

[email protected]://www.di.unito.it/~guido

Page 2: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

2

Commenti

Commenti su piu` linee possono essere fatti racchiudendoli tra i simboli /* e */

Commenti su di una sola linea possono essere fatti facendoli precedere dal simbolo //

I commenti non compaiono nel codice eseguibile Esiste anche il commento racchiuso tra /** e */

/* Commento su piu` linee */public class BenvenutoInJava { public static void main(String[] args) { System.out.println("Benvenuto in Java!"); // Commento su una sola linea }}

Page 3: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

3

Classi come contenitori di metodispecificatore di accesso class NomeClasse { /* definizione metodi */ spec.accesso static tipo nomeMetodo(dichiarazione

variabili) { istruzione; istruzione;… }

spec.accesso static tipo nomeMetodo(dichiarazione variabili)

{ istruzione; istruzione;… }}

Page 4: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

4

Definizione di un metodospec.accesso static tipo nomeMetodo(tipo nomeVar,

tipo nomeVar, …) { /* dichiarazione variabili */ tipo nomeVar; tipo nomeVar; … /* inizializzazione variabili */ nomeVar = valore; nomeVar = valore; … /* chiamate a metodi */ NomeClasse.nomeMetodo(valore); nomeVar = NomeClasse.nomeMetodo(valore); /*se tipo di ritorno non è void */ return valore;}

Page 5: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

5

Classi come contenitori di metodipublic class MyMath { /* definizione metodi */ public static int quadrato(int x) { istruzione; istruzione;… }

public static double percento(int lire, double tasso) { istruzione; istruzione;… }}

Page 6: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

6

Tipi primitivi

Java e` un linguaggio fortemente tipato, ogni variabile deve avere un tipo dichiarato

Esistono otto tipi primitivi, sei per i tipi di numeri, uno per i caratteri (codifica Unicode) e uno per boolean int (4 byte) - float (4 byte) short (2 byte) - double (8 byte) long (8 byte) - char byte (1 byte) - boolean

I tipi primitivi non sono oggetti (puntatori) Non dipendono dalla macchina di destinazione void indica che un metodo non ha tipo (non si usa con le

variabili)

Page 7: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

7

Dichiarazione di variabile

identificatore = lettera (lettera | cifra)* lettera e cifra nel senso “Unicode” Lunghezza illimitata Per convenzione si usano nomi che iniziano con una lettera

minuscola L’inizializzazione e` come in C

int variabileIntera;long variabileInteraDi8byte;

double piGrecoApprossimato = 3.1415;boolean flag = false; /* o false o true ! */

Assegnamento

Page 8: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

8

Operatori

Operatori aritmetici: + - * / % Assegnamento e operatori aritmetici: += -= *= /= %= (es. a

+= i;) Operatori di incremento (in posizione di prefisso o di

suffisso di una variabile numerica): ++ e -- (es. i++; a=--i;) Operatori relazionali e booleani: == != < > <= >= && || ! Operatori sui bit: & | ^ ~ >> << Parentesi: ( )

Page 9: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

9

Valori/* un numero è un valore */1

/* una variabile inizializzata è un valore */x

/* una operazione fra valori + un valore */1+1 x+1 x*x x+y

/* una chiamata ad un metodo non void è un valore */MyMath.quadrato(x)MyMath.quadrato(2)Math.round(2.3)Console.readInt(“dimmi…”)

/* misto */x + MyMath.quadrato(2)2 + MyMath.quadrato(x)

Page 10: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

10

Definizione di un metodo public static void quadrato(int x) { /* dichiarazione variabili */ int risultato; /* inizializzazione variabili */ risultato = x * x; /* chiamate a metodi */ /*se tipo di ritorno non è void */ return risultato;}

Page 11: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

11

Definizione di un metodo public static void salutatore(String nome) { /* dichiarazione variabili */ String saluto; /* inizializzazione variabili */ saluto = “Ciao “ + nome; /* chiamate a metodi */ System.out.println(saluto); /*se tipo di ritorno non è void */}

Page 12: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

12

Istruzioni condizionali

if (condizione) istruzione;

if (condizione) { istruzione; istruzione;… }

if (condizione) istruzione; else istruzione;

Page 13: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

13

Istruzioni condizionali

if (x==0) System.out.println(“zero”);

if (x!=0) { x=x+1; System.out.println(“ho incrementato x”); }

if (x<0) System.out.print(“minore di zero”);

else System.out.print(“maggiore o uguale a zero”);

Page 14: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

14

Istruzioni cicliche

OGNI VOLTA CHE LA CONDIZIONE E’ VERAESEGUI L’ISTRUZIONE (O LE ISTRUZIONI) SPECIFICATE

while (condizione) istruzione;

while (condizione) { istruzione; istruzione;… }

Page 15: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

15

Istruzioni cicliche

while (x!=0) x=Console.readInt(“dimmi..:”);

while (e<0) { risultato = risultato * b; e = e – 1; }

while (capitale<2000) { capitale = capitale + MyMath.percento(capitale, tasso); anni = anni + 1; }

Page 16: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

16

For for (inizializzazione var; condizione; step) { istruzione;…}

Inizializzazione: istruzione che dichiara o assegna valore ad una variabile: int x = 0; i=1;… Condizione: x<10; i<0; x!=i; Step: istruzione che modifica il valore della variabile utilizzata: x=x+1; i=i*2; x=x-1; …

for (int i=0; i<10; i=i+1) System.out.println(i);

for (int i=0; i<e; i=i+1) {ris = ris * b;}

Page 17: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

17

Classi come generatori di oggettispecificatore di accesso class NomeClasse{ /* definizione variabili di istanza */specificatore di accesso dichiarazione var;specificatore di accesso dichiarazione var; …

/* definizione costruttore */specificatore di accesso NomeClasse(dichiarazione variabili) { inizializzazione variabili di istanza; istruzione;… }

/* definizione metodi */ specificatore di accesso tipo nomeMetodo(dich. variabili) { istruzione; istruzione;… } }

Page 18: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

18

Classi come generatori di oggettipublic class Conto{ /* definizione variabili di istanza */private int capitale;public String nome;

/* definizione costruttore */public Conto(int lire, String n) { capitale = lire; nome = n; }

/* definizione metodi */ public void deposito(int lire) {

capitale = capitale + lire;}

}

Page 19: Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino guido@di.unito.it.

19

Classi come generatori di oggettispecificatore di accesso class NomeClasse{ /* definizione variabili di istanza */specificatore di accesso static dichiarazione var;specificatore di accesso static dichiarazione var;…

/* definizione variabili di istanza */specificatore di accesso dichiarazione var;specificatore di accesso dichiarazione var; …

/* definizione costruttore */specificatore di accesso NomeClasse(dichiarazione variabili) { … }

/* definizione metodi */ specificatore di accesso tipo nomeMetodo(dichiarazione var) { … } }