際際滷

際際滷Share a Scribd company logo
2 - Introduzione al linguaggio Java
Programmazione e analisi di dati
Modulo A: Programmazione in Java
Paolo Milazzo
Dipartimento di Informatica, Universita di Pisa
http://pages.di.unipi.it/milazzo
milazzo di.unipi.it
Corso di Laurea Magistrale in Informatica Umanistica
A.A. 2016/2017
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 1 / 24
Sommario
1 Introduzione al linguaggio Java
2 Scrivere, compilare ed eseguire un programma Java
Il primo programma Java
Editare, compilare ed eseguire
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 2 / 24
La Genesi di Java
Java e un linguaggio di programmazione nato allinizio degli anni novanta
da un gruppo di lavoro della Sun Microsystems guidato da James Gosling
Inizialmente concepito per scrivere programmi per il controllo di
elettrodomestici (TV, frigorifero,...)
linguaggio (relativamente) semplice da usare
capace di essere eseguito su diversi tipi di processori
che non richiedesse compilatori o interpreti troppo sofisticati (i
produttori degli elettrodomestici non avrebbero investito risorse in
quel settore)
Lidea fu di introdurre un unico, semplice linguaggio intermedio (chiamato
byte-code) per il quale potessero facilmente essere scritti interpreti ad-hoc
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 3 / 24
Il byte-code Java (1)
Il linguaggio Java si basa quindi su un approccio che combina
compilazione (in byte-code) e interpretazione (del byte-code)
Il byte-code puo essere visto come lassembly di una macchina virtuale, un
calcolatore ipotetico che ha caratteristiche simili (semplificate) a quelle
delle architetture hardware piu comuni
e un linguaggio di basso livello (come lassembly)
non e legato ad una particolare architettura hardware
Linterprete del byte-code Java e detto Java Virtual Machine (JVM)
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 4 / 24
Il byte-code Java (2)
Lapproccio compilazione+interpretazione schematicamente:
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 5 / 24
Java e Internet
Dopo breve tempo ci si rese conto che Java poteva essere usato per
distribuire applicazioni su Internet
il byte-code poteva essere distribuito via Web ed essere eseguito sui
computer degli utenti
essenziale lindipendenza dalla piattaforma hardware
successo delle applet Java: programmi Java eseguibili dentro al
browser Web (la JVM installata come plug-in del browser)
Con il tempo altre tecnologie soppiantano Java nellambito di Internet
(e.g. JavaScript)
Java rimane comunque uno tra i principali linguaggi per lo sviluppo di
applicazioni desktop e distribuite, in particolare in ambiente aziendale
(enterprise)
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 6 / 24
Java e gli altri linguaggi
(per chi conosce C e C++)
Il linguaggio Java ha una sintassi che si ispira ai linguaggi C e C++
erano probabilmente i linguaggi piu usati allinizio degli anni 90
Java, come il C++, e un linguaggio a oggetti (o object-oriented)
Un programma puo essere strutturato come un insieme di oggetti che
interagiscono luno con laltro (vedremo...)
La gestione degli oggetti (e non solo) e semplificata rispetto a C++
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 7 / 24
Java vs JavaScript (1)
(per chi conosce JavaScript)
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 8 / 24
Java vs JavaScript (2)
JavaScript e un linguaggio che serve per scrivere applicazioni web
client-side da eseguire allinterno del browser
Rispetto a JavaScript, il linguaggio Java:
Prevede una fase di compilazione che effettua numerosi controlli
Prevede regole sintattiche piu forti (es.: il ; alla fine di ogni comando)
E un linguaggio fortemente tipato:
I il programmatore e tenuto a specificare il tipo di ogni variabile, e il
compilatore richiede e garantisce che i valori di tali variabili verranno
sempre usati in modo coerente rispetto al tipo
Fa un utilizzo degli oggetti molto diverso (basato su classi)
Insomma... Java e molto piu rigoroso di JavaScript... quindi meglio si
presta a scrivere applicazioni complesse e strutturate
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 9 / 24
Sommario
1 Introduzione al linguaggio Java
2 Scrivere, compilare ed eseguire un programma Java
Il primo programma Java
Editare, compilare ed eseguire
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 10 / 24
Il primo programma Java (1)
Il seguente programma visualizza un semplice saluto (Hello World!)
public class HelloWorld {
public static void main(String [] args) {
// visualizza un messaggio di saluto
System.out.println("Hello World!");
}
}
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 11 / 24
Il primo programma Java (2)
public class HelloWorld { .... }
... dice che stiamo definendo la classe HelloWorld
Un programma Java e costituito da un insieme di classi (almeno una)
public significa che questa classe e pubblica: puo essere utilizzata da
qualunque altra classe del programma
Il contentuto della classe e racchiuso tra parentesi graffe
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 12 / 24
Il primo programma Java (3)
public static void main(String [] args) { .... }
.... definisce un metodo della class HelloWorld
Un metodo e una funzionalita della classe messa disposizione del resto
del programma o di altre parti (altri metodi) della stessa classe
Questo metodo e chiamato main (principale) ed e un metodo
speciale. Viene subito eseguito allinizio del programma.
public significa che questo metodo puo essere usato da altre classi
static, void e String[] args li capiremo piu avanti....
Il corpo del metodo e racchiuso tra le parentesi graffe
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 13 / 24
Il primo programma Java (4)
// visualizza un messaggio di saluto
.... e un commento
Viene trascurato dal compilatore Java
Serve solo per rendere piu comprensibile il programma
E un commento tutto cio che si trova a destra di // (una sola riga)
E un commento anche tutto cio che si trova tra /* e */ (anche su
piu righe). Ad esempio:
/* Questo e un esempio di commento su
due righe */
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 14 / 24
Il primo programma Java (5)
System.out.println("Hello World!");
.... e un comando che visualizza il messaggio Hello World
System.out e un oggetto che rappresenta il canale di output
standard del sistema (la console...)
Un oggetto e unentita attiva che corrisponde a una determinata
classe (vedremo...)
println e un metodo delloggetto System.out che stampa un
messaggio e va a capo
come tutti i comandi, println deve essere terminato con punto e
virgola ;
"Hello World!" e una stringa, ossia una sequenza di caratteri
alfanumerici
La stringa "Hello World!" viene passata come parametro (tra
parentesi) al metodo println
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 15 / 24
Struttura di base
Per un po di tempo i programmi Java che considereremo avranno sempre
la struttura
public class NomeClasse {
public static void main(String [] args) {
.......
}
}
ossia:
Una sola classe (con nome arbitrario)
Il solo metodo main (scritto esattamente come nellesempio)
Il corpo del main conterra tutti i comandi del programma
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 16 / 24
Sommario
1 Introduzione al linguaggio Java
2 Scrivere, compilare ed eseguire un programma Java
Il primo programma Java
Editare, compilare ed eseguire
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 17 / 24
Editare un programma Java
Per scrivere un programma Java si puo usare un qualunque editor di testi
Tra i piu semplici:
su Linux: gedit
su Windows: il blocco note
(o lottimo Notepad++  http://notepad-plus-plus.org/)
E sufficiente aprire leditor, digitare il programma e salvarlo (in una
opportuna directory) con il nome
<nomeclasse>.java
Quindi la classe HelloWorld vista prima dovra essere salvata come
HelloWorld.java
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 18 / 24
Compilare ed eseguire un programma Java (1)
Per compliare ed eseguire un programma Java avremo bisogno di un
compilatore Java e di una Java Virtual Machine (JVM)
Entrambi questi strumenti sono forniti dal Java Development Kit (JDK).
Sul sito web del corso trovate i link alle pagine che vi consentono di
scaricare il JDK
Un modo per eseguire il compilatore Java e la JVM e tramite la console di
sistema
Su Linux (e su MacOS) si chiama Terminale
Su Windows si chiama Prompt dei comandi
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 19 / 24
Compilare ed eseguire un programma Java (2)
Primo passo: aprire il terminale/prompt dei comandi
Terminale
Tutti i programmi  Accessori  Prompt dei comandi
Secondo passo: spostarsi nella cartella (directory) che contiene il
programma usando i comandi ls (Linux) o dir (Windows) e cd
(Linux/Win)
ls e dir mostrano il contenuto della directory corrente
cd nomedir consente di entrare dentro la directory con nome nomedir
cd .. consente di uscire dalla directory corrente
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 20 / 24
Compilare ed eseguire un programma Java (3)
Terzo passo: Raggiunta la directory che contiene il programma, si puo
eseguire il compilatore Java tramite il comando javac
javac <nomeclasse>.java
Quindi, nel caso del programma HelloWorld dovremo digitare
javac HelloWorld.java (N.B. il file deve esistere nella directory!)
Nota: Su Windows, se javac non funziona puo darsi che sia
necessario impostare la variabile di sistema PATH...
Eventuali errori nel programma vengono segnalati ora!
Se il programma non contiene errori, il risultato della compilazione e il file
<nomeclasse>.class (nellesempio: HelloWorld.class) che contiene il
byte-code
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 21 / 24
Compilare ed eseguire un programma Java (4)
Quarto passo: Bisogna ora eseguire la Java Virtual Machine tramite il
comando java
java <nomeclasse>
Quindi, nel caso del programma HelloWorld dovremo digitare
java HelloWorld e il programma ci rispondera Hello World!
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 22 / 24
Compilare ed eseguire un programma Java (5)
Riassumendo...
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 23 / 24
Uso della shell
Quando abbiamo usato la console di sistema (Terminale o Prompt dei
comandi) abbiamo in realta interagito con un programma detto shell
La shell e il programma che esegue interattivamente comandi di
sistema (cd, dir, ls, ...)
Tramite la shell si possono fare un sacco di cose (creare/rimuovere
directory, eseguire programmi, controllare i programmi attivi, ecc...)
Fino a un po di anni fa la shell era lunico mezzo per usare un
computer
Esistono diverse shell (che eseguono comandi diversi)
Su Linux la piu comune si chiama bash
Su Windows lunica in pratica disponibile deriva dallMS-DOS
Trovate riferimenti a guide su bash e MS-DOS nel sito web del corso!
Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 24 / 24

More Related Content

Similar to 2-Intro-Java.pdf (20)

Processing -guida_introduttiva_alla_pro
Processing  -guida_introduttiva_alla_proProcessing  -guida_introduttiva_alla_pro
Processing -guida_introduttiva_alla_pro
Alberto Cecchi
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio Java
Paolo Tosato
Linguaggio Java
Linguaggio JavaLinguaggio Java
Linguaggio Java
GSamLo
Introduzione al java
Introduzione al javaIntroduzione al java
Introduzione al java
Giovanni Pace
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
Matteo Baccan
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
Andrea Bozzoni
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
Yeser Rema
Qualit del Software
Qualit del SoftwareQualit del Software
Qualit del Software
Yeser Rema
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
Roberto Polillo
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
Valerio Radice
Real Spring Aop Recipes For Your Everyday Job
Real Spring Aop Recipes For Your Everyday JobReal Spring Aop Recipes For Your Everyday Job
Real Spring Aop Recipes For Your Everyday Job
Massimiliano Dess狸
Java&Solidarieta
Java&SolidarietaJava&Solidarieta
Java&Solidarieta
Andrea Del Bene
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Daniele Falamesca
Summary of The Case for Writing Network Drivers in High-Level Programming La...
Summary of The Case for Writing Network Drivers in High-Level Programming La...Summary of The Case for Writing Network Drivers in High-Level Programming La...
Summary of The Case for Writing Network Drivers in High-Level Programming La...
LeonardoIurada
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
Marco Breveglieri
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Codemotion
Vb.Net
Vb.NetVb.Net
Vb.Net
Maurizio Farina
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
STELITANO
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
Marco Gasparetto
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
Roberto Polillo
Processing -guida_introduttiva_alla_pro
Processing  -guida_introduttiva_alla_proProcessing  -guida_introduttiva_alla_pro
Processing -guida_introduttiva_alla_pro
Alberto Cecchi
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio Java
Paolo Tosato
Linguaggio Java
Linguaggio JavaLinguaggio Java
Linguaggio Java
GSamLo
Introduzione al java
Introduzione al javaIntroduzione al java
Introduzione al java
Giovanni Pace
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
Matteo Baccan
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
Andrea Bozzoni
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
Yeser Rema
Qualit del Software
Qualit del SoftwareQualit del Software
Qualit del Software
Yeser Rema
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
Roberto Polillo
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
Valerio Radice
Real Spring Aop Recipes For Your Everyday Job
Real Spring Aop Recipes For Your Everyday JobReal Spring Aop Recipes For Your Everyday Job
Real Spring Aop Recipes For Your Everyday Job
Massimiliano Dess狸
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Daniele Falamesca
Summary of The Case for Writing Network Drivers in High-Level Programming La...
Summary of The Case for Writing Network Drivers in High-Level Programming La...Summary of The Case for Writing Network Drivers in High-Level Programming La...
Summary of The Case for Writing Network Drivers in High-Level Programming La...
LeonardoIurada
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
Marco Breveglieri
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Codemotion
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
STELITANO
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
Marco Gasparetto
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
Roberto Polillo

2-Intro-Java.pdf

  • 1. 2 - Introduzione al linguaggio Java Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Universita di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di Laurea Magistrale in Informatica Umanistica A.A. 2016/2017 Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 1 / 24
  • 2. Sommario 1 Introduzione al linguaggio Java 2 Scrivere, compilare ed eseguire un programma Java Il primo programma Java Editare, compilare ed eseguire Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 2 / 24
  • 3. La Genesi di Java Java e un linguaggio di programmazione nato allinizio degli anni novanta da un gruppo di lavoro della Sun Microsystems guidato da James Gosling Inizialmente concepito per scrivere programmi per il controllo di elettrodomestici (TV, frigorifero,...) linguaggio (relativamente) semplice da usare capace di essere eseguito su diversi tipi di processori che non richiedesse compilatori o interpreti troppo sofisticati (i produttori degli elettrodomestici non avrebbero investito risorse in quel settore) Lidea fu di introdurre un unico, semplice linguaggio intermedio (chiamato byte-code) per il quale potessero facilmente essere scritti interpreti ad-hoc Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 3 / 24
  • 4. Il byte-code Java (1) Il linguaggio Java si basa quindi su un approccio che combina compilazione (in byte-code) e interpretazione (del byte-code) Il byte-code puo essere visto come lassembly di una macchina virtuale, un calcolatore ipotetico che ha caratteristiche simili (semplificate) a quelle delle architetture hardware piu comuni e un linguaggio di basso livello (come lassembly) non e legato ad una particolare architettura hardware Linterprete del byte-code Java e detto Java Virtual Machine (JVM) Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 4 / 24
  • 5. Il byte-code Java (2) Lapproccio compilazione+interpretazione schematicamente: Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 5 / 24
  • 6. Java e Internet Dopo breve tempo ci si rese conto che Java poteva essere usato per distribuire applicazioni su Internet il byte-code poteva essere distribuito via Web ed essere eseguito sui computer degli utenti essenziale lindipendenza dalla piattaforma hardware successo delle applet Java: programmi Java eseguibili dentro al browser Web (la JVM installata come plug-in del browser) Con il tempo altre tecnologie soppiantano Java nellambito di Internet (e.g. JavaScript) Java rimane comunque uno tra i principali linguaggi per lo sviluppo di applicazioni desktop e distribuite, in particolare in ambiente aziendale (enterprise) Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 6 / 24
  • 7. Java e gli altri linguaggi (per chi conosce C e C++) Il linguaggio Java ha una sintassi che si ispira ai linguaggi C e C++ erano probabilmente i linguaggi piu usati allinizio degli anni 90 Java, come il C++, e un linguaggio a oggetti (o object-oriented) Un programma puo essere strutturato come un insieme di oggetti che interagiscono luno con laltro (vedremo...) La gestione degli oggetti (e non solo) e semplificata rispetto a C++ Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 7 / 24
  • 8. Java vs JavaScript (1) (per chi conosce JavaScript) Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 8 / 24
  • 9. Java vs JavaScript (2) JavaScript e un linguaggio che serve per scrivere applicazioni web client-side da eseguire allinterno del browser Rispetto a JavaScript, il linguaggio Java: Prevede una fase di compilazione che effettua numerosi controlli Prevede regole sintattiche piu forti (es.: il ; alla fine di ogni comando) E un linguaggio fortemente tipato: I il programmatore e tenuto a specificare il tipo di ogni variabile, e il compilatore richiede e garantisce che i valori di tali variabili verranno sempre usati in modo coerente rispetto al tipo Fa un utilizzo degli oggetti molto diverso (basato su classi) Insomma... Java e molto piu rigoroso di JavaScript... quindi meglio si presta a scrivere applicazioni complesse e strutturate Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 9 / 24
  • 10. Sommario 1 Introduzione al linguaggio Java 2 Scrivere, compilare ed eseguire un programma Java Il primo programma Java Editare, compilare ed eseguire Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 10 / 24
  • 11. Il primo programma Java (1) Il seguente programma visualizza un semplice saluto (Hello World!) public class HelloWorld { public static void main(String [] args) { // visualizza un messaggio di saluto System.out.println("Hello World!"); } } Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 11 / 24
  • 12. Il primo programma Java (2) public class HelloWorld { .... } ... dice che stiamo definendo la classe HelloWorld Un programma Java e costituito da un insieme di classi (almeno una) public significa che questa classe e pubblica: puo essere utilizzata da qualunque altra classe del programma Il contentuto della classe e racchiuso tra parentesi graffe Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 12 / 24
  • 13. Il primo programma Java (3) public static void main(String [] args) { .... } .... definisce un metodo della class HelloWorld Un metodo e una funzionalita della classe messa disposizione del resto del programma o di altre parti (altri metodi) della stessa classe Questo metodo e chiamato main (principale) ed e un metodo speciale. Viene subito eseguito allinizio del programma. public significa che questo metodo puo essere usato da altre classi static, void e String[] args li capiremo piu avanti.... Il corpo del metodo e racchiuso tra le parentesi graffe Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 13 / 24
  • 14. Il primo programma Java (4) // visualizza un messaggio di saluto .... e un commento Viene trascurato dal compilatore Java Serve solo per rendere piu comprensibile il programma E un commento tutto cio che si trova a destra di // (una sola riga) E un commento anche tutto cio che si trova tra /* e */ (anche su piu righe). Ad esempio: /* Questo e un esempio di commento su due righe */ Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 14 / 24
  • 15. Il primo programma Java (5) System.out.println("Hello World!"); .... e un comando che visualizza il messaggio Hello World System.out e un oggetto che rappresenta il canale di output standard del sistema (la console...) Un oggetto e unentita attiva che corrisponde a una determinata classe (vedremo...) println e un metodo delloggetto System.out che stampa un messaggio e va a capo come tutti i comandi, println deve essere terminato con punto e virgola ; "Hello World!" e una stringa, ossia una sequenza di caratteri alfanumerici La stringa "Hello World!" viene passata come parametro (tra parentesi) al metodo println Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 15 / 24
  • 16. Struttura di base Per un po di tempo i programmi Java che considereremo avranno sempre la struttura public class NomeClasse { public static void main(String [] args) { ....... } } ossia: Una sola classe (con nome arbitrario) Il solo metodo main (scritto esattamente come nellesempio) Il corpo del main conterra tutti i comandi del programma Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 16 / 24
  • 17. Sommario 1 Introduzione al linguaggio Java 2 Scrivere, compilare ed eseguire un programma Java Il primo programma Java Editare, compilare ed eseguire Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 17 / 24
  • 18. Editare un programma Java Per scrivere un programma Java si puo usare un qualunque editor di testi Tra i piu semplici: su Linux: gedit su Windows: il blocco note (o lottimo Notepad++ http://notepad-plus-plus.org/) E sufficiente aprire leditor, digitare il programma e salvarlo (in una opportuna directory) con il nome <nomeclasse>.java Quindi la classe HelloWorld vista prima dovra essere salvata come HelloWorld.java Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 18 / 24
  • 19. Compilare ed eseguire un programma Java (1) Per compliare ed eseguire un programma Java avremo bisogno di un compilatore Java e di una Java Virtual Machine (JVM) Entrambi questi strumenti sono forniti dal Java Development Kit (JDK). Sul sito web del corso trovate i link alle pagine che vi consentono di scaricare il JDK Un modo per eseguire il compilatore Java e la JVM e tramite la console di sistema Su Linux (e su MacOS) si chiama Terminale Su Windows si chiama Prompt dei comandi Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 19 / 24
  • 20. Compilare ed eseguire un programma Java (2) Primo passo: aprire il terminale/prompt dei comandi Terminale Tutti i programmi Accessori Prompt dei comandi Secondo passo: spostarsi nella cartella (directory) che contiene il programma usando i comandi ls (Linux) o dir (Windows) e cd (Linux/Win) ls e dir mostrano il contenuto della directory corrente cd nomedir consente di entrare dentro la directory con nome nomedir cd .. consente di uscire dalla directory corrente Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 20 / 24
  • 21. Compilare ed eseguire un programma Java (3) Terzo passo: Raggiunta la directory che contiene il programma, si puo eseguire il compilatore Java tramite il comando javac javac <nomeclasse>.java Quindi, nel caso del programma HelloWorld dovremo digitare javac HelloWorld.java (N.B. il file deve esistere nella directory!) Nota: Su Windows, se javac non funziona puo darsi che sia necessario impostare la variabile di sistema PATH... Eventuali errori nel programma vengono segnalati ora! Se il programma non contiene errori, il risultato della compilazione e il file <nomeclasse>.class (nellesempio: HelloWorld.class) che contiene il byte-code Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 21 / 24
  • 22. Compilare ed eseguire un programma Java (4) Quarto passo: Bisogna ora eseguire la Java Virtual Machine tramite il comando java java <nomeclasse> Quindi, nel caso del programma HelloWorld dovremo digitare java HelloWorld e il programma ci rispondera Hello World! Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 22 / 24
  • 23. Compilare ed eseguire un programma Java (5) Riassumendo... Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 23 / 24
  • 24. Uso della shell Quando abbiamo usato la console di sistema (Terminale o Prompt dei comandi) abbiamo in realta interagito con un programma detto shell La shell e il programma che esegue interattivamente comandi di sistema (cd, dir, ls, ...) Tramite la shell si possono fare un sacco di cose (creare/rimuovere directory, eseguire programmi, controllare i programmi attivi, ecc...) Fino a un po di anni fa la shell era lunico mezzo per usare un computer Esistono diverse shell (che eseguono comandi diversi) Su Linux la piu comune si chiama bash Su Windows lunica in pratica disponibile deriva dallMS-DOS Trovate riferimenti a guide su bash e MS-DOS nel sito web del corso! Paolo Milazzo (Universita di Pisa) Programmazione - Intro Java A.A. 2016/2017 24 / 24