Sei sulla pagina 1di 14

Informatica - Laboratorio

gennaio 09

Java Introduzione

Struttura di unapplicazione Java


Per generare unapplicazione Java occorre creare un file di testo, assegnargli un nome:
senza spazi n caratteri speciali per convenzione con la prima lettera maiuscola con estensione .java

(per esempio PrimoProgramma.java) ... e inserire al suo interno una struttura in grado di ospitare le istruzioni che dovranno essere eseguite
23/01/2009 Java - Introduzione 2

Informatica - Laboratorio

gennaio 09

Struttura di unapplicazione Java (2)


public class PrimoProgramma { public static void main(String[] args) { istruzione; istruzione; ... } }

Commenti: importante non farsi spaventare dallimpatto iniziale con la sintassi: inizialmente ci fideremo del funzionamento di alcune istruzioni, il cui significato sar pi chiaro nelle prossime lezioni!
23/01/2009 Java - Introduzione 3

Struttura di unapplicazione Java (3)


public class PrimoProgramma { public static void main(String[] args) { istruzione; ... } }
Commenti:
Java case-sensitive, e quindi i vari termini devono essere scritti esattamente come indicato (class e non Class, main e non Main, ) Ogni applicazione costituita da (almeno) una classe, identificata dal termine class, il cui nome deve essere uguale al nome del file senza lestensione .java In Java per indicare un blocco di istruzioni lo si delimita con parentesi graffe; dunque la classe PrimoProgramma include una funzione main (riconosciamo che una funzione dalle parentesi che racchiudono i suoi argomenti) Una funzione contiene una o pi istruzioni, ciascuna deve terminare con ;
23/01/2009 Java - Introduzione 4

Informatica - Laboratorio

gennaio 09

Il primo programma
In Java si possono introdurre dei commenti in un programma:
// questo un commento che termina alla fine della linea /* questo invece un commento che pu proseguire anche su pi linee */

Ecco la pi semplice applicazione Java: //file: PrimoProgramma.java public class PrimoProgramma { public static void main(String[] args) { //Visualizza un messaggio sullo schermo System.out.println(Hello, World!); } } il cui scopo visualizzare sullo schermo Hello, World!
23/01/2009 Java - Introduzione 5

Leggibilit del codice


Il codice di prima: //file: PrimoProgramma.java public class PrimoProgramma { public static void main(String[] args) { //Visualizza un messaggio sullo schermo System.out.println(Hello, World!); } }

potrebbe anche essere scritto cos (e funzionerebbe ugualmente): public class PrimoProgramma {public static void main(String[] args) {System.out.println(Hello, World!);}} per il calcolatore non cambia nulla, ma per lessere umano naturalmente pi difficile comprenderne il significato e utilizzarlo!

23/01/2009

Java - Introduzione

Informatica - Laboratorio

gennaio 09

Il primo programma: commenti


Listruzione public static void main(String[] args)
main il nome predefinito della funzione attivata quando unapplicazione viene messa in esecuzione public static void sono dei costrutti (obbligatori nel caso di main) che qualificano le caratteristiche della funzione: per ora consideriamoli necessari, senza entrare in dettagli sul loro significato String[] args la dichiarazione dellargomento (cio della variabile di input) della funzione; come vedremo, in Java sempre necessario dichiarare le variabili con il loro tipo: in questo caso, quindi, viene introdotto un argomento di nome args e di tipo array di String

23/01/2009

Java - Introduzione

Il primo programma: commenti (2)


Listruzione System.out.println(Hello, World!")
nel suo complesso, il costrutto System.out.println ha lo scopo di visualizzare il suo argomento, in questo caso la stringa Hello, World!, sullo schermo in particolare System.out specifica il dispositivo di uscita (per default appunto lo schermo), un oggetto predefinito e preinizializzato, a cui si applica il metodo println che ha lo scopo di visualizzare il suo argomento e di forzare poi un ritorno a capo (mentre il metodo print avrebbe prodotto la stessa visualizzazione ma senza il ritorno a capo)

23/01/2009

Java - Introduzione

Informatica - Laboratorio

gennaio 09

Il compilatore
Lapplicazione contenuta nel file PrimoProgramma.java non ancora eseguibile, dato che scritta in un linguaggio di cui non disponiamo di un interprete Occorre convertire il programma in una sua versione equivalente ma scritta in un linguaggio eseguibile; lambiente di sviluppo di Java (il Java Development Kit, JDK) mette a disposizione un programma, un compilatore Java (chiamato javac), che ha esattamente questa funzionalit Fornendo in input a javac il file PrimoProgramma.java viene prodotto il file PrimoProgramma.class, finalmente eseguibile da parte dellinterprete Java (la Java Virtual Machine, JVM)

23/01/2009

Java - Introduzione

Esecuzione del primo programma


Dalla linea di comando (supponendo che la shell sia aperta nella directory che contiene il file PrimoProgramma.java) occorre dunque:
compilare il programma, con il comando: javac PrimoProgramma.java eseguire il programma, con il comando: java PrimoProgramma

(si noti che nel comando di esecuzione occorre specificare il nome del file senza lestensione .class)
23/01/2009 Java - Introduzione 10

Informatica - Laboratorio

gennaio 09

Convenzioni java
Tutte le parole chiave java sono in minuscolo

I nomi di classi iniziano con una lettera MAIUSCOLA


I nomi di metodi e variabili iniziano con una lettera minuscola

23/01/2009

Java - Introduzione

11

Esercizio 1
Scrivere unapplicazione che visualizza sullo schermo il vostro nome e cognome su due righe consecutive.

23/01/2009

Java - Introduzione

12

Informatica - Laboratorio

gennaio 09

Esercizio 2
Scrivere unapplicazione che visualizza sullo schermo il vostro nome allinterno di un rettangolo: Per esempio: +-------+ | Marco | +-------+

23/01/2009

Java - Introduzione

13

Soluzioni
Esercizio 1
public class MioNome { public static void main(String[] args) { System.out.println(Daniele); System.out.println(Restelli); } }

Esercizio 2

public class NomeRettangolo { public static void main(String[] args) { System.out.println(+-------+); System.out.println(| Marco |); System.out.println(+-------+); } }
23/01/2009 Java - Introduzione 14

Informatica - Laboratorio

gennaio 09

Tipi di variabili
Java richiede che le variabili vengano dichiarate direttamente con il loro tipo, che non pu essere pi cambiato durante lesecuzione:
int x1; String x2; x1 = x2 = x1 = x1 = 1; "1"; "1"; x2; // variabile dichiarata di tipo intero // variabile dichiarata di tipo stringa // assegnazione // assegnazione // assegnazione // assegnazione corretta... corretta... errata... errata...

Java un linguaggio a tipi forti (strongly typed)


23/01/2009 Java - Introduzione 15

Conversioni di tipo
Da stringhe a numeri:
String x1 = "1"; int x2 = Integer.parseInt(x1); double x3 = Double.parseDouble(x1);

Da numeri a stringhe:
int x1 = 1; double x2 = 1.2; String x3 = Integer.toString(x1); String x4 = Double.toString(x2);
23/01/2009 Java - Introduzione 16

Informatica - Laboratorio

gennaio 09

Conversioni di tipo (2)


Per la conversione da numeri a stringhe si pu anche sfruttare il fatto che loperatore + (che somma numeri e concatena stringhe) se applicato a un numero e una stringa converte automaticamente il numero nella stringa corrispondente. Dunque: e:
int x1 = 1; String x2 = Integer.toString(x1); int x1 = 1; String x2 = "" + x1;

producono esattamente lo stesso effetto Per la conversione da int a double e viceversa, si usa una notazione diversa, basata su unoperazione chiamata casting: e analogamente:
int x1 = 1; double x2 = (double)x1; double x1 = 1.2; int x2 = (int)x1;

23/01/2009

Java - Introduzione

17

Esercizio 3
Cosa visualizzano le seguenti istruzioni? System.out.println(3 + 4) System.out.println(3 + 4) System.out.println(3 + 4)

23/01/2009

Java - Introduzione

18

Informatica - Laboratorio

gennaio 09

Soluzioni Esercizio 3
System.out.println(3 + 4)

3+4
System.out.println(3 + 4)

7
System.out.println(3 + 4)

34
23/01/2009 Java - Introduzione 19

Esercizio 4 Trovare gli errori


public class Cubo { public static void main () { double lato = 3.0; \\ in centimetri double volume_cubo = lato * lato * lato double superficie_cubo = 8 * lato * lato; System.out.print ("Volume = "; System.out.println (volume_cubo); System.out.print ("Superficie = ); System.out.println (supefricie_cubo); }

23/01/2009

Java - Introduzione

20

10

Informatica - Laboratorio

gennaio 09

Esercizio 5 Cosa viene visualizzato?


public class EsercizioTipi { public static void main(String[] args) { // Prime prove di output System.out.println("Ciao mondo"); System.out.println(100); //variabile pippo di tipo stringa String pippo = ""; pippo = "Ciao mondo"; System.out.println(pippo); pippo = "Ciao "; System.out.println(pippo+"mondo"); //variabile pluto di tipo intero int pluto = 150; System.out.println(pluto); System.out.println(pippo+pluto); System.out.println(pippo+pluto+pluto); System.out.println(pluto+pluto+pippo); System.out.println(pippo+(pluto+pluto));
Java - Introduzione 21

23/01/2009

Esercizio 5 Cosa viene visualizzato? (2)


public class EsercizioTipi { public static void main(String[] args) { // operazioni di casting int pluto = 150; double paperino = 3.7; System.out.println(paperino); int pap = (int)paperino; System.out.println(pap); double pl = (double)pluto; System.out.println(pl); // variabile x di tipo boolean boolean x = true; System.out.println(x); }

}
23/01/2009 Java - Introduzione 22

11

Informatica - Laboratorio

gennaio 09

Esercizio 5 Cosa viene visualizzato? (3)


public class EsercizioTipi { public static void main(String[] args) { // operazioni sugli interi int a = 0; a = a + 1; System.out.println(a); a += 1; System.out.println(a); a++; System.out.println(a); System.out.println(a++); System.out.println(a); System.out.println(++a); // somma dei primi 10 interi System.out.println(1+2+3+4+5+6+7+8+9+10); // somma dei reciproci dei primi 10 interi System.out.println(1/1+1/2+1/3+1/4+1/5 +1/6+1/7+1/8+1/9+1/10);
Java - Introduzione 23

23/01/2009

Argomenti sulla linea di comando


La funzione main() prevede come argomento un array di stringhe, che corrispondono agli argomenti che lutente indica nella linea di comando dopo il nome del programma Se dunque il nostro programma include la dichiarazione:
public static void main(String[] args)

e lo eseguiamo con il comando:

java PrimoProgramma pippo pluto topolino e minnie

in modo automatico linterprete Java assegner:


args[0] = pippo args[1] = pluto args[2] = topolino e minnie

da cui si nota che:

In Java il primo elemento degli array ha indice 0 Nella lista degli argomenti sulla linea di comando lo spazio un separatore e le virgolette sono un delimitatore
Java - Introduzione 24

23/01/2009

12

Informatica - Laboratorio

gennaio 09

Uso degli argomenti nel codice


Attenzione che se nel codice si prevede luso di uno o pi argomenti args [x] e questi non vengono forniti sulla linea di comando si genera un errore in esecuzione public class EsercizioArgs { public static void main(String[] args) { System.out.println(args[0] = + args[0]); System.out.println(args[1] = + args[1]); System.out.println(args[2] = + args[2]); } }

23/01/2009

Java - Introduzione

25

Esercizi 6 e 7
6: Saluto.java
Creare unapplicazione che visualizza Ciao xxx, dove xxx linput dellapplicazione specificato sulla linea di comando

7: Somma.java
Creare unapplicazione che visualizza la somma di due numeri specificati sulla linea di comando

23/01/2009

Java - Introduzione

26

13

Informatica - Laboratorio

gennaio 09

Soluzioni
Esercizio 6:
public class Saluto { public static void main(String[] args) { System.out.println("Ciao " + args[0]); } }

Esercizio 7:

public class Somma { public static void main(String[] x) { int n1 = Integer.parseInt(x[0]); int n2 = Integer.parseInt(x[1]); int n3 = n1 + n2; System.out.println("somma=" + n3); } }
23/01/2009 Java - Introduzione 27

Materiale

http://www.liuc.it/persone/gbuonann/0809Ing1Info/default.htm

23/01/2009

Java - Introduzione

28

14