Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Introduzione al JAVA Java Fondamenti di Informatica 14 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Introduzione al JAVA • Cos’è JAVA? – JAVA e` un linguaggio interpretato di recente introduzione (1991!) – Il successo di JAVA è legato quasi esclusivamente alla realizzazione del browser HotJava (1995) ed alla successiva integrazione della tecnologia JAVA nel browser Netscape • Quali sono le caratteristiche principali del linguaggio? – Apprezzare le caratteristiche di JAVA richiede un buon bagaglio di conoscenza • Semplicità (deriva da C e C++) • Programmazione orientata agli oggetti • Elaborazione distribuita • Robustezza (non esistono puntatori) • Sicurezza • Portabilità Fondamenti di Informatica 15 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Introduzione al JAVA • Alcuni equivoci comuni – JAVA non ha relazioni con il linguaggio HTML; è possibile tuttavia richiamare un programma JAVA da una pagina HTML (applet) – Come tutti i programmi evoluti, JAVA non è di facile apprendimento. Ha però caratteristiche che lo rendono di uso abbastanza immediato – JAVA non è un ambiente di programmazione. Ambienti di programmazione sono disponibili per JAVA come per altri linguaggi – JAVA diventerà un linguaggio universale di programmazione?…. E’ difficile affermarlo con certezza. Fondamenti di Informatica 16 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Introduzione al JAVA • JAVA è un linguaggio lento? – JAVA è un linguaggio sia compilato che interpretato – L’interpretazione del metacodice è certamente un punto debole; il problema è tuttavia superato dall’utilizzo di compilatori “just in time” Programma sorgente JAVA Compilatore (javac) metacodice (bytecode) Interprete Java Virtual Machine Librerie, oggetti rilocabili Fondamenti di Informatica (java) 17 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori Tipi, Dichiarazione di Variabile, Assegnamento di Variabile, Operatori sui Tipi Fondamenti di Informatica 18 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori • Tipi fondamentali – Numeri in virgola mobile float range da 1.40129846432481707E-45 a 3.40282346638528860E+38 (pos,neg) (7 cifre decimali significative) double range da 4.94065645841246544E-324 a 1.79769313486231570E+308 (pos,neg) (15 cifre decimali significative) – Interi int long -> -> short byte -> -> da -2.147.483.648 a 2.147.483.647 da -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 da -32.768 a 32.767 da -128 a 127 Fondamenti di Informatica 19 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori • Tipi fondamentali – Caratteri char codice a due byte (unicode) per 65536 simboli NB: Il codice si esprime normalmente come \uXXXX dove XXXX sono cifre esadecimali –Booleani Boolean -> true oppure false Utilizzati per test logici e per operazioni di confronto Fondamenti di Informatica 20 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori • Dichiarazione e assegnazione di variabili byte b; int anInteger; long aLong; char ch; char yesch, capitalA; yesch = ‘Y’; capitalA = ‘\u0041’; //corrisponde al carattere A boolean k=true; int i; // this is a declaration i = 37; // this is an assignment Fondamenti di Informatica 21 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori • Operatori int n = 5; int a = 2+n; // a vale int b = a-3; // b vale int c = a*b; // c vale int d = a/b; // d vale ________________________ int m = 7; int n = 7; int k; n++; m--; k = m*n; Fondamenti di Informatica // // // // k n m k 7 4 28 1 !!!! non è inizializzata vale 8 vale 6 vale 48 22 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori •Operatori relazionali –Operatori per fare confronti: Uguali (a==b) Diversi (a!=b) Maggiore (a>b) Minore (a<b) Maggiore o uguale (a>=b) Minore o uguale Fondamenti di Informatica (a<=b) 23 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori •Operatori booleani – Il risultato di un confronto è una variabile di tipo boolean (5>7) è false – Posso combinare i valori delle espressioni booleane con gli operatori AND OR NOT AND (a && b) OR (a || b) NOT (~b) XOR (a^b) Esempio ((5==7) && (5>7)) Fondamenti di Informatica è false 24 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori •Stringhe: sequenze di caratteri, racchiuse tra virgolette. String e = “Hello World”; String e = “”; // stringa vuota •Operazioni sulle stringhe: –Sottostringhe: tramite la funzione (metodo) substring String e = “Hello World”; String s = e.substring(0,5) // sottostringa che inizia in posizione // 0 e finisce in posizione 5 –Concatenazione: si usa il simbolo + String e = “Hello ”; String s = “World”; String t = e+s; Fondamenti di Informatica // t vale “Hello World” 25 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: tipi, variabili, operatori –Lunghezza ed estrazione di caratteri String e = “Hello World”; char c = e.charAt(4) // carattere in posizione 4 (“o”) int l = e.length() // lunghezza (11) –Confronto String e = “Hello”; String s = “Hi”; if (e.equals(s)) // vale false if (e.compareTo(s)) // vale –4 –Ricerca String e = “Hello”; int k = e.indexOf(‘e’); // prima pos. del caratt “e” (1) Fondamenti di Informatica // vale –1 se non trovo corrisp. 26 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: struttura di classe Programmi Java: istruzioni di input/output Fondamenti di Informatica 27 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: struttura di classe • La struttura di un semplice programma JAVA Nome classe public class Hello { public static void main(String[] args) { Istruzione 1 Programma Istruzione 2 vero e proprio Istruzione 3 … } } Fondamenti di Informatica 28 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.0 stampare il messaggio ”Benvenuto nel mondo Java !” a video, utilizzando una delle due seguenti istruzioni di output System.out.println("Benvenuto nel mondo Java !"); System.out.print("Benvenuto nel mondo Java !"); Fondamenti di Informatica 29 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.0: stampare una stringa in output START Stampa messaggio il messaggio "Benvenuto nel mondo Java !" END Fondamenti di Informatica 30 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O // stampa a video la stringa “Benvenuto nel mondo Java !” import java.util.*; // libreria…utilità di sistema! public class esempio1_0{ public static void main(String[] args) { System.out.print("Benvenuto nel mondo Java !"); } } Fondamenti di Informatica 31