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!