Le basi del linguaggio
Java
A. Lorenzi, A. Rizzi
Java.
Programmazione ad oggetti e applicazioni Android
© Istituto Italiano Edizioni Atlas
Compilazione e
interpretazione
Quando si compila il codice sorgente scritto in
Java, il compilatore genera il codice compilato,
chiamato bytecode.
È un codice generato per una macchina
astratta, detta Java Virtual Machine (JVM).
Per essere eseguito su una macchina reale, il
codice compilato (bytecode) deve essere
interpretato.
Compilazione e
interpretazione
Java è un linguaggio interpretato, anche se la
produzione del bytecode è effettuata con
un’operazione di compilazione.
Ambiente di programmazione
con JDK (Java Development Kit) si possono scrivere e
compilare applet e applicazioni Java.
il compilatore e l’interprete sono eseguiti da riga di
comando.
software di tipo IDE (Integrated Development
Environment), cioè ambienti che facilitano lo sviluppo
dei programmi attraverso un’interfaccia grafica e una
modalità di programmazione visuale.
librerie contenenti classi e metodi
Struttura di un programma
Java
un’applicazione può essere costituita da una o
più classi.
una si differenzia dalle altre perchè contiene il
metodo main().
l’esecuzione di un’applicazione Java comincia
eseguendo questo metodo.
Struttura di un programma
Java
class <nome classe>
{
public static void main(String args[])
{
// dichiarazioni di variabili
.
.
.
// istruzioni
.
.
.
}
}
Metodo main
public indica che il metodo è pubblico ed è
visibile
void indica che non ci sono valori di ritorno
static indica che il metodo è associato alla
classe e non può essere richiamato dai singoli
oggetti della classe.
Compilazione ed esecuzione
Per compilare il programma:
javac <nome file>
genera un file compilato che ha estensione .class e
rappresenta il bytecode.
Per eseguire il programma:
java <nome file>
Identificatori e parole chiave
Gli identificatori sono i nomi che il
programmatore assegna per identificare le
variabili, i metodi e le classi.
Le parole chiave sono un insieme di parole
riservate di Java che non possono essere
usate come identificatori.
Variabili
Le variabili:
<tipo> <nome variabile>;
int prezzo;
L’assegnamento:
<tipo> <nome variabile> = <valore iniziale>;
double altezza = 1.83;
Costanti
Una costante può assumere un solo valore
durante tutta l’esecuzione del programma:
final double YARD_METRO = 0.914;
Il casting
Il casting è il meccanismo che consente al
programmatore di indicare la conversione da un tipo di
dato a un altro tipo.
floatNum = 13.278f;
intNum = (int) floatNum;
Operatori
Le operazioni aritmetiche: +, -, *, /.
L’operatore % è usato per calcolare il resto.
Operatori di incremento e di decremento: ++ e – –.
i++;
L’assegnamento di un valore a una variabile viene
eseguito usando l’operatore di assegnamento =.
Le stringhe possono essere concatenate tra loro
usando l’operatore di concatenazione +.
Operatori di confronto
Operatori di confronto: l’operatore di uguaglianza è
rappresentato da due simboli di uguale (==).
if (voto == 6)
{
System.out.println("sufficiente");
}
La disuguaglianza (diverso da) è espressa usando
l’operatore !=.
Gli altri operatori di confronto sono <, <=, >, e >=.
Operatori booleani
L’operatore && (oppure &) indica l’operazione
di AND.
L’operatore || (oppure |) indica l’operazione di
OR.
La negazione NOT viene espressa con
l’operatore !.
Standard output
System.out.println("messaggio da visualizzare");
System.out rappresenta un oggetto associato
allo standard output. Esiste anche un oggetto
associato allo standard error che è System.err.
Standard input
System.in gestisce il flusso di dati inseriti da tastiera.
classe BufferedReader
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader tastiera = new BufferedReader(input);
lettura di una stringa:
String nome;
nome = tastiera.readLine();
Struttura di sequenza
La struttura di sequenza viene realizzata posizionando le
istruzioni una di seguito all’altra e separandole con il
punto e virgola.
Ogni dichiarazione e istruzione deve terminare con il
punto e virgola.
Struttura di selezione
La struttura di selezione:
if (condizione)
{
// istruzioni eseguite se la condizione è vera
}
else
{
// istruzioni eseguite se la condizione è falsa
}
Selezione multipla
La struttura di selezione multipla:
switch (espressione)
{
case valore1: // istruzioni
break;
case valore2: // istruzioni
break;
. . . .
default: // istruzioni
break;
}
Struttura di ripetizione
while
while (condizione)
{
// istruzioni
}
Struttura di ripetizione
• do while
do
{
// istruzioni
}
while (condizione);
• for
for (inizializzazione; condizione; aggiornamento)
{
// istruzioni
}
Array
Ci sono array a una dimensione (vettori) o a
più dimensioni (matrici).
Si usa un unico nome collettivo. Ogni elemento
è individuato attraverso un indice (numero
intero).
Il primo elemento dell’array ha come indice 0.
Array
La dichiarazione:
int i[];
String nomi[];
L’allocazione di un array:
i = new int[5];
nomi = new String[10];
Array
La dichiarazione e allocazione degli array sulla
stessa riga:
int i[] = new int[5];
String nomi[] = new String[10];
Array
L’array bidimensionale corrisponde a una
matrice con righe e colonne.
int matrice[][];
matrice = new int[3][4]
Eccezioni
Un’eccezione è una situazione anomala che si verifica
durante l’esecuzione del programma.
try
{
// istruzioni da controllare
}
catch(eccezione)
{
// operazioni da eseguire se si verifica l'eccezione
}
Eccezioni predefinite
ArithmeticException: segnala errori aritmetici
NullPointerException: errore dovuto all’utilizzo di un
riferimento che possiede il valore null
IndexOutOfBoundException: errore nell’indice di un
array
IOException: generico errore di input/output.