Professional Documents
Culture Documents
Fondamenti di Informatica
Dispensa 06
Programmazione Java
Alfonso Miola
Ottobre 2012
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
Contenuti
q Il linguaggio Java
q Applicazioni Java e il metodo main
q Esempi di applicazioni
Scrittore sullo schermo
Radice quadrata
Programmazione Java
Prerequisiti
Questo capitolo presuppone la conoscenza
degli argomenti gi trattati nelle
precedenti lezioni di questo corso e
riportati nelle rispettive dispense, con
particolare riferimento al capitolo 1 e al
capitolo 2 del libro di testo
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
Programmazione Java
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
Programmi Java
qIn Java, ogni programma un oggetto:
esistono due tipi di programmi Java
applicazioni Java
un programma a s stante, che viene eseguito da un
interprete Java, chiamato macchina virtuale Java (o JVM,
Java Virtual Machine)
applet Java
un programma immerso in una pagina web, che viene
eseguito dalla JVM di un browser web
Programmazione Java
Applicazioni Java
qUna applicazione una classe applicazione
che definisce un oggetto classe e che sa eseguire
esclusivamente loperazione speciale main
Programmazione Java
API di Java . . .
qLambiente di sviluppo per Java corredato
da un numeroso insieme di classi e oggetti
predefiniti - le API (Application Programming
Interface) di Java
le API sono in insieme di elementi standard di
programmazione per la gestione di aspetti
applicativi di carattere generale input-output,
stringhe, grafica, ...
le classi delle API sono raggruppate in librerie
chiamate package
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
10
. . . API di Java
qLe API rappresentano quindi un supporto al
programmatore che gli permettono di
concentrarsi sullo sviluppo di classi e oggetti
relativi alle applicazioni di interesse
qGli oggetti e le classi delle API di Java
possono essere utilizzati conoscendone
linterfaccia
linterfaccia degli elementi delle API di Java
documentata da un insieme di pagine web
disponibile al programmatore
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
11
Programmazione in Java . . .
qLa programmazione in Java coinvolge i
seguenti aspetti
conoscenza del linguaggio Java
ovvero, conoscenza della sintassi e della semantica di
Java
Programmazione Java
12
. . . Programmazione in Java
qViene ora mostrata una panoramica sulla
programmazione in Java
qCome nellapprendimento dei linguaggi
naturali anche qui si incomincia imparando a
leggere
viene mostrato come leggere alcuni programmi
Java, di complessit via via crescente
Programmazione Java
13
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
14
System.out
qLapplicazione ha bisogno di visualizzare una
frase sullo schermo
lapplicazione pu utilizzare loggetto System.out
System.out
println(String frase)
Programmazione Java
15
Lapplicazione ScrittoreSulloSchermo
/* Applicazione che visualizza una frase
sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println(base dell'informatica");
}
}
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
16
Programmazione Java
17
Commenti
/* Applicazione che visualizza una frase
sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println(base dell'informatica");
}
}
Programmazione Java
18
Programmazione Java
19
Programmazione Java
20
Il metodo main . . .
/* Applicazione che visualizza una frase sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println("base dell'informatica");
}
}
Programmazione Java
21
. . . Il metodo main
/* Applicazione che visualizza una frase sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println("base dell'informatica");
}
}
Programmazione Java
22
Istruzioni
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println("base dell'informatica");
qLe tre istruzioni nel corpo del metodo main hanno una
struttura simile
ad esempio, nella prima istruzione
System.out il nome delloggetto (predefinito) che modella lo
schermo del calcolatore
println("Questo corso") il messaggio che si vuole inviare a
System.out
il punto, il punto e virgola, le parentesi e le virgolette hanno il
ruolo di separare le varie parti dellistruzione
Programmazione Java
23
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
24
Esecuzione di un metodo
qLesecuzione di un metodo consiste
nellesecuzione delle istruzioni scritte nel corpo
del metodo, una alla volta e in sequenza
qQuindi, lesecuzione del metodo main consiste
nellinvio, alloggetto System.out, di tre
messaggi, in sequenza
in corrispondenza alla ricezione dei tre messaggi, lo
schermo System.out visualizzer successivamente
su se stesso le tre frasi
Questo corso
introduce i concetti di
base dellinformatica
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
25
println(String frase)
main(...)
1: main(...)
System.out
Programmazione Java
26
Esercizio
qCommentare la definizione della seguente
classe
/* Applicazione che visualizza sullo schermo
* la poesia Mattino di Giuseppe Ungaretti. */
class Mattino {
public static void main(String[] args) {
System.out.println("M'illumino");
System.out.println("d'immenso");
}
}
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
27
Esercizio
qOra che abbiamo imparato a leggere proviamo anche
a scrivere in Java !
qUna lunga tradizione vuole che il primo programma
scritto da un programmatore sia quello che visualizza
sullo schermo la frase Hello, world (che significa
Ciao, mondo)
qDefinire lapplicazione Java CiaoMondo che
visualizza sullo schermo la frase Hello, world
Ovviamente possiamo anche scrivere altro a piacere
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
28
Errori di programmazione
qDurante la scrittura di classi possibile commettere
degli errori di programmazione ad esempio
la frase scritta non corretta nel linguaggio di
programmazione (errori grammaticali)
la frase scritta corretta nel linguaggio di programmazione,
ma il suo significato diverso da quanto ci si era prefissi
(errori non grammaticali)
Programmazione Java
29
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
30
Errori comuni
qAlcuni possibili errori di programmazione
omissione o uso errato della punteggiatura
ad esempio, omettere i punti e virgola sono solitamente errori
grammaticali, ma non sempre
errori di battitura
ad esempio, scrivere viod anzich void
dimenticare parole
inserire spazi erronei
ad esempio, scrivere Scrittore Sullo Schermo
Programmazione Java
31
Programmazione Java
32
Lapplicazione RadiceQuadrata
/* Applicazione che calcola e
* visualizza sullo schermo
* la radice quadrata di 144. */
class RadiceQuadrata {
public static void main(String[] args) {
double radice;
radice = Math.sqrt(144);
System.out.println(radice);
}
}
Programmazione Java
33
Diagramma di collaborazione
per RadiceQuadrata
1.1: radice = sqrt(144)
1: main()
applicazione
RadiceQuadrata
Math
double sqrt(double n)
main(...)
1.2: println(radice)
System.out
println(double x)
Programmazione Java
34
Programmazione Java
35
"calcolatore" : String
calcolatore
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
36
Letterali stringa
qUn letterale String una stringa racchiusa tra
doppi apici " e "
ad esempio, "calcolatore"
il valore di un letterale String la stringa racchiusa
tra apici (apici esclusi)
luso di un letterale String equivalente alla
creazione di un oggetto di tipo String
un letterale String una espressione di tipo String
vedremo che ogni letterale e ogni espressione ha un tipo
cos come tutte le altre componenti linguistiche Java
Programmazione Java
37
Variabili e tipi
qCome gi detto ad ogni variabile deve essere associato
un tipo con una apposita istruzione
Ad esempio per assegnare il tipo dei numeri reali ad una
variabile di nome radice si usa la seguente espressione
double radice
qIl tipo double uno dei tipi primitivi di Java
esso gi predefinito in Java
una variabile di tipo primitivo memorizza un valore
una variabile di tipo double memorizza un valore numero reale
Programmazione Java
38
"estate" : String
String
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
39
"estate" : String
String
"inverno" : String
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
40
Un oggetto pu essere
referenziato da pi variabili
q possibile che un oggetto sia
contemporaneamente referenziato da pi
variabili
String s, t;
s = "estate";
t = s; // copia in t il riferimento memorizzato da s
s
"estate" : String
String
t
String
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
41
"estate" : String
String
"inverno" : String
String
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
42
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
43
Programmazione Java
44
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
45
La stringa vuota
qUna stringa vuota una sequenza vuota di
caratteri
la stringa vuota un oggetto String di lunghezza
zero
la stringa vuota denotata dal letterale "
lespressione "".length() vale 0
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
46
qAd esempio . . .
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
47
Concatenazione di stringhe
String s, t, u;
s = "auto";
t = "mobile";
"auto" : String
String
"mobile" : String
String
u
String
"automobile" : String
String
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
48
Programmazione Java
49
Il metodo
String substring(int inizio, int fine)
qIl metodo String substring(int inizio, int fine)
della classe String
(crea e) restituisce un nuovo oggetto String
composto dai caratteri della stringa su cui il
metodo stato invocato che occupano le posizioni
tra inizio (inclusa) e fine (esclusa)
detto in altro modo, la stringa restituita comprende i
caratteri tra le posizioni inizio e fine1 (estremi inclusi)
ad esempio
String s, t;
s = "automobile";
t = s.substring(2,6); // t vale "tomo"
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
50
Programmazione Java
51
Programmazione Java
52
Esercizio
Cosa visualizza questa applivazione ?
public class JFK {
public static void main(String[] args) {
String first = "John";
String middle = "Fitzgerald";
String last = "Kennedy";
String initials;
String firstInit, middleInit, lastInit;
firstInit = first.substring(0,1);
middleInit = middle.substring(0,1);
lastInit = last.substring(0,1);
initials = firstInit.concat(middleInit);
initials = initials.concat(lastInit);
System.out.println(initials);
}
}
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
53
String toLowerCase()
per convertire tutti i caratteri di una stringa in minuscole
ad esempio "Java".toLowerCase() costruisce la
stringa di valore java
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
54
Esempio: MaiuscoleMinuscole
public class UpperLowerCase {
public static void main(String[] args) {
String s, upper, lower;
s = "Hello";
upper = s.toUpperCase();
lower = s.toLowerCase();
System.out.println(s);
System.out.print("upper = ");
System.out.println(upper);
System.out.print("lower = ");
System.out.println(lower);
}
}
Questo programma costruisce 3 stringhe distinte (che non vengono
pi modificate): la stringa "Hello" iniziale, la stringa "HELLO"
denotata attraverso upper, e la stringa "hello" denotata da lower
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
55
Programmazione Java
56
Programmi Java
qIn Java, ogni programma un oggetto:
esistono due tipi di programmi Java
applicazioni Java
un programma a s stante, che viene eseguito da un
interprete Java, chiamato macchina virtuale Java (o JVM,
Java Virtual Machine)
applet Java
un programma immerso in una pagina web, che viene
eseguito dalla JVM di un browser web
Programmazione Java
57
Applicazioni Java
qUna applicazione una classe applicazione
che definisce un oggetto classe e che sa eseguire
esclusivamente loperazione speciale main
Programmazione Java
58
Lapplicazione ScrittoreSulloSchermo
/* Applicazione che visualizza una frase
sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println(base dell'informatica");
}
}
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
59
Il metodo main
/* Applicazione che visualizza una frase sullo schermo. */
class ScrittoreSulloSchermo {
public static void main(String[] args) {
System.out.println("Questo corso");
System.out.println("introduce i concetti di");
System.out.println("base dell'informatica");
}
}
Programmazione Java
60
Lapplicazione RadiceQuadrata
/* Applicazione che calcola e
* visualizza sullo schermo
* la radice quadrata di 144. */
class RadiceQuadrata {
public static void main(String[] args) {
double radice;
radice = Math.sqrt(144);
System.out.println(radice);
}
}
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
61
Programmazione Java
62
http://www.dia.uniroma3.it/~java/fondinf/
Programmazione Java
63
3 su Oggetti e Java
7 su Leggibilit
9 su Variabili e assegnazione
12 sulle Stringhe
Programmazione Java
64