JAVA
Per iniziare
Per iniziare
• Verificare installazione
javac –version
java –version
• Cercare i files e sistemare eventualmente
il path
Su windows
windows
Dir \javac.exe /s
File batch..
Linux
locate */javac
alias
set path=%path%;…
export PATH=$PATH:
env
La prima classe
•
•
•
•
Nome del file uguale al nome della classe
Case sensitive
Estensione .java
In linea di massima ogni classe deve
avere il suo file
• Una classe eseguibile avrà il main
La prima classe..
class ClasseEsegubile {
/*metodo main */
public static void main(String[ ] argv) {
System.out.println("ciao");
}
}
file ClasseEseguibile.java
compiliamo ed eseguiamo
javac ClasseEseguibile.java
se non ci sono errori.. verrà creato un file
ClasseEseguibile.class
che può essere mandato in esecuzione alla VM
con
java ClasseEseguibile
note
• javac NomeDelFile.java
• java NomeDelFile
javac vuole l’estensione, java no.
un po di spiegazioni e termini..
class NomeDellaClasse { }
scritto minuscolo è una parola riservata per
dichiarare la classe. Può essere preceduto
da un’altra parola che ne specifica la
visibilità (es: public). Questa parola si
chiama modificatore
Tra parentesi graffe c’è tutto ciò che
riguarda la definizione della classe: le sue
variabili, i suoi metodi, ecc.
un po di spiegazioni e termini..
public static void main(String[] s)
Definisice il metodo main. In un programma
java c’è sempre una sola classe con il
metodo main.. in pratica indica da dove
cominciare..
main è il nome del metodo (subito prima
delle parentesi tonde)
un po di spiegazioni e termini..
public static void main(String[] s)
void indica il tipo di dato che viene restituito
dal metodo. il tipo “void” significa nessun
tipo, cioè il metodo fa delle cose, ma non
restituisce nulla.
Possibili tipi sono i tipi integrati (int, long,
double, float, boolean, ) e qualsiasi classe
Il tipo va indicato immediatamente prima del
nome del metodo
un po di spiegazioni e termini..
public static void main(String[] s)
static e public sono dei modificatori del
metodo che ne specificano alcune
caratteristiche. Si può invertire l’ordine.
Modificatori possibili: public, protected
private, abstract, final, native, static, strictfp,
synchronized, transient
Può non essere definito nessun
modificatore.
un po di spiegazioni e termini..
public static void main(String[] s)
Le parentesi dopo il main contengono eventuali
argomenti del metodo (in generale un metodo può
ricevere diversi parametri)
Ogni parametro ha un tipo e un nome, in questo
caso String[ ] indica un array di stringhe, s è il
nome.
Nel caso del main si usa sempre indicare come
parametro un array di stringhe, con nome
convenzionale argv
un po di spiegazioni e termini..
{
} /*parentesi graffe*/
le parentesi graffe (alt+123 o altGr+[ )
definiscono un blocco di codice.
Tra parentesi graffe vanno inserite le
istruzioni (assegnazioni, istruzioni
condizionali, istruzioni di ciclo, ecc.)
Evetuali variabili definite all’interno delle
parentesi hanno visibilità solo all’interno
delle parentesi
un po di spiegazioni e termini..
System.out.println("Ciao")
println(..) è un metodo
dell'oggetto out che in questo caso è un
oggetto statico della classe statica System.
L'oggetto out è un'istanza della classe
PrintStream che supporta il metodo println
E' un modo semplice di generare dell'output
su una finestra terminale
un po di spiegazioni e termini..
System.out.println("Ciao")
"ciao" è l'argomento del metodo println.
Il fatto che stia tra virgolette doppie " indica che
si tratta di una stringa (=un insieme di caratteri)
In Java questo tipo di dato è un oggetto (l'oggetto
String) e il valore di un oggetto va sempre indicato
tra virgolette doppie.
Potevamo anche scrivere:
String x="Ciao"; System.out.println(x);
in questo caso abbiamo creato un oggetto stringa
x
Note
• notiamo che ogni istruzione deve
terminare col punto e virgola;
• dopo il punto e virgola posso scegliere se
andare o meno a capo
• il ritorno a capo "interrompe"
l'interpretazione dell'istruzione
Un esempio molto più complesso!
import java.awt.*;
class ClasseForm {
static public void main(String[] argv){
System.out.println("ciaociao");
Frame f = new Frame();
f.setVisible(true);
f.setTitle("ciao");
f.setSize(150,150);
f.setLocation(300, 100);
}
}
Un esempio molto più complesso!
Abbiamo utilizzato un oggetto f di classe Frame che
appartiene alla libreria java.awt!
Lo abbiamo istanziato
Frame f = new Frame();
abbiamo importato tutta la libreria
import java.awt.*
ma avremo potuto importare anche solo la classe Frame
import java.awt.Frame oppure non importare
nulla e usare una sintassi più lunga
java.awt.Frame f = new java.awt.Frame();
Un esempio molto più complesso!
L'oggetto f, di classe Frame è una finestrina
stile window iconizzabile e resizable con
titolo e pulsantini per essere ridotta a icona,
massimizzata, ecc.
Notiamo che il pulsantino per chiudere non
funziona..
Qualche metodo di String
.length() //numero di caratteri
.toLowerCase() //minuscolo
.toUpperCase() //maiuscolo
.trim() //senza spazi all'inizio e alla fine
.replaceAll( cerca, sostituisci )
La classe string si trova in java.lang.String
che viene automaticamente importata!