Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di...
-
Upload
serafina-cipriani -
Category
Documents
-
view
213 -
download
1
Transcript of Java Programmazione in Java Guido Boella Dipartimento di Informatica Universita` degli Studi di...
JavaProgrammazione in Java
Guido BoellaDipartimento di InformaticaUniversita` degli Studi di TorinoC.so Svizzera, 185 I-10149 Torino
[email protected]://www.di.unito.it/~guido
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 }}
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;… }}
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;}
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;… }}
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)
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
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: ( )
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)
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;}
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 */}
12
Istruzioni condizionali
if (condizione) istruzione;
if (condizione) { istruzione; istruzione;… }
if (condizione) istruzione; else istruzione;
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”);
14
Istruzioni cicliche
OGNI VOLTA CHE LA CONDIZIONE E’ VERAESEGUI L’ISTRUZIONE (O LE ISTRUZIONI) SPECIFICATE
while (condizione) istruzione;
while (condizione) { istruzione; istruzione;… }
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; }
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;}
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;… } }
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;}
}
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) { … } }