Java Lezione 1

17
Java Hello World Il primo esempio

Transcript of Java Lezione 1

Page 1: Java Lezione 1

Java Hello World

Il primo esempio

Page 2: Java Lezione 1

Primo esempiopublic class CiaoMondo{ public static void main(String []args)

{ System.out.println("Ciao Mondo");}

}

Possiamo notare in questo piccolo esempio:-che ogni programma Java è O.O. infatti è contenuto in una classe-L’uso delle parole chiave public, class, static, void-La presenza del metodo main che serve come punto d’ingresso dell’applicazione-Il file che contiene il sorgente deve avere lo stesso nome della classe pubblica, in questo caso CiaoMondo.java (si notino le maiuscole)-Le parentesi graffe che racchiudono i blocchi di istruzioni

Page 3: Java Lezione 1

Argomenti da linea di comando

Invocando un’applicazione da linea di comando è possibile introdurre alcuni argomenti:Ad esempio: java Benvenuto Fabiopublic class Benvenuto{ public static void main(String []args)

{ System.out.println("Ciao “ + args[0]);}

}Si può notare che args[] è un array di stringhe è viene automaticamente inizializzato con gli argomenti da linea di comando.Gli array verranno approfonditi in seguito, ma si noti che args[0] rappresenta il primo argomento, nel esempio sarà Fabio.Con args.length è possibile conoscere il numero di argomenti passati da linea di comando

Page 4: Java Lezione 1

Le variabili

Le variabili sono in java fortemente tipizzate, i tipi di dati primitivi sono molto simili a quelli del C.Come in C++ le variabili possono essere dichiarate in qualsiasi punto del codice e assumono una visibilità che dipende essenzialmente dal blocco di istruzioni (parentesi graffe) in cui si trovano.

Page 5: Java Lezione 1

Tipi di dati primitivi• Interi•int 4 byte

•long 8 byte•short 2 byte•byte 1 byte

• Reali•float 4 byte•double8 byte

• Altri tipi primitivi•boolean 1 byte vale solo true o false•char 2 byte codifica UNICODE

Page 6: Java Lezione 1

Conversioni tra tipi di datiCome in C esiste l’operatore ‘cast’

double c=1.9;int a=(int)c; //attenzione non si tratta di un arrotondamento

char ch=‘a’;int ascii=(int)ch; //si ottiene il codice ascii della lettera

Nel caso di conversioni tra Stringhe e numeri non è possibile utilizzare il cast, ma si dovranno usare metodi diversi.

Page 7: Java Lezione 1

Operatori•ARITMETICI

• Moltiplicazione *• Divisione /• Addizione +• Sottrazione –• Divisione Intera / purché i termini siano interi• Resto della divisione intera %• Le parentesi ()

•LOGICI • || (OR) &&(AND) !(NOT)

•OPERATORI SUI BIT• | (OR bit per bit) &(AND) >>(SHIFT a destra) <<(SHIFT a

sinistra)•CONFRONTI

• == (uguali) > < >= <= !=

Page 8: Java Lezione 1

Strutture di controllo: condizioni

if (a==3&&c!=1){ c=c+4;}else { c=c-4; b=1; }

Page 9: Java Lezione 1

Condizione ad uscita multiplaswitch(voto){ case 5: case 4: System.out.println(“Insufficiente”); break; case 6: System.out.println(“Sufficiente”); break; case 7: System.out.println(“Discreto”); break; default: System.out.println(“voto non valido”);

}

Page 10: Java Lezione 1

Cicli//condizione inizialewhile(a<10){ s+=a++;}

//condizione finaledo{ s+=a++;}while(a<10);

//ciclo a contatore (a condizione iniziale)for (int i=0;i<10;i++){ s+=i;}

Page 11: Java Lezione 1

Commenti standardCommenti in linea

// commento su una sola riga

Commenti su più linee/*

testo del commentosu più linee

*/

Page 12: Java Lezione 1

Commenti per utilizzo di javadoc /**

* Commento javadoc* può contenere tag HTML* <b>Grassetto</b>*/

Esistono anche opportuni tag per javadoc@author@param parametri dei metodi@return valori di ritorno di un metodo@see vedi anche..@version 1.0@since JDK1.0

Page 13: Java Lezione 1

Tipi di dati non primitiviIl primo tipo di dato non primitivo che si incontra è String.String permette di memorizzare dati di tipo stringa (alfanumerici). Si tratta

in realtà di una classe predefinita che possiede diversi metodi per manipolare le stringhe.String nome=“Paolo”; //Crea un oggetto di tipo stringaString cognome=new String(“Rossi”);nome=nome.toUpperCase(); //Crea una nuova stringa tutta maiuscola

//Si noti che i metodi sono associati all’oggettonome=nome + “!”; //Crea una nuova stringa = Paolo!nome=nome+1; //Conatenazione tra stinghe e tipi primitivinome=nome +’a’;String s=“”+2;//Conversione da tipo primitivo a stringa

RICORDIAMO i metodi di uso comune come length(), equals(Str), compareTo(Str), charAt(n),

substring(b),substring(b,e)

Page 14: Java Lezione 1

Classi wrapperEsistono classi corrispondenti a tutti i tipi primitivi ovvero:IntegerDoubleFloatLongBooleanShortByteSono molto utili quando è necessario attuare conversioni da Stringa a

Numero, o ad esempio in conversioni da decimale a Esadecimale, Binario, Ottale…Ad esempioString argomento=args[0];int n=Integer.parseInt(argomento);double x=Double.parseDouble(strValue);

Page 15: Java Lezione 1

IntegerLa classe Integer è molto usata per convertire le stringhe in interi, ma

dispone di interessanti metodi per convertire da una base all’altra i numeri:

int n=Integer.parseInt(str,2); //Converte la stringa binaria str in interoint n= Integer. parseInt(str,16); //Converta la stringa esadecimale str in

intero

String s=Integer.toString(10,2); //converte 10 nella corrispondente stringa binaria

Esistono anche metodi specificitoBinaryString(), toHexString()…..

Page 16: Java Lezione 1

CharacterLa classe Charcter dispone di alcuni metodi per determinare il tipo di

carattere:

boolean b=Character.isDigit(ch); //determina se ch è un numeroboolean b=Character.isISOControl(ch); //determina se ch è di controlloboolean b=Character.isLetter(ch); //determina se ch è una letteraboolean b=Character.isLetterOrDigit(ch);

//determina se ch è una lettera o un numero

isUpperCase(ch); isLowerCase(ch); isWhitespace(ch)

Sono altri metodi dal significato abbastanza comprensibile.

Page 17: Java Lezione 1

Altri usi delle classi wrapper

Le classi Wrapper fungono anche da contenitori per valori delle variabili primitivi:

int k=5;Integer kappa=new Integer(k);

In tal modo kappa diventa un oggetto e può essere utilizzato in tutti i contesti in cui non è possibile usare delle variabili primitive: ad esempio potrebbe essere inserito in una Lista concatenata.Gli oggetti così istanziati dispongono di numerosi metodi, ad esempio è sempre

possibile ottenere di nuovo il tipo primitivo di origine: k=kappa.intValue();

Si noti la differenza tra i metodi statici di Integer (detti metodi di classe):int j=Integer.parseInt(str);

E quelli non statici (detti di istanza)k=kappa.intValue();