|
Commenti nel codice java
I commenti nella scrittura del codice
sono utili per facilitare la comprensione in fase
di debug.
Inoltre e' buona regola inserire
all'inizio di ogni applet/applicazione alcune righe
con la descrizione, l'autore, la versione e tutte
quelle informazioni che si possono ritenere necessarie.
Possono essere di 3 tipi:
| 1) |
/* riga1
riga2
riga3 */
|
per commenti su
piu’linee |
| 2) |
/** documentazione
*/ |
per documenti di
commento |
| 3) |
// testo |
Per commenti su
singola linea: il compilatore ignora da "//"
alla fine della linea |
Inserendo alcuni tags specifici
si possono distribuire insieme ai nostri la documentazione
in formato HTML sulle classi e i metodi "public" e
"protected". La funzione javadoc del JDK estrae tale
informazioni.
Tags per documentazione di classi:
Tags per documentazione di metodi:
Nota:
javadoc puo’generare anche tag HTML:
| Esempio: |
| /**
* <PRE>
* System.out.println(new
Date()):
* <PRE>
*/
|
| Esempio completo: |
//:Commenti.java
/**
* Esempi Commento
della classe Commenti
* @author Gasparri
Roberto
* @version 1.0
*/
public class Commenti
{
/**commento del
metodo f()
* @param parametri
di ingresso
* @return i valori
che ritorna
* @exception Eccezioni
catturate/generate(trow)
*/
public void f()
{ }
public static void
main(String args[])
}
/* Esempio di commento
su piu'linee */
|
javadoc "Commenti.java" –version
–author
produce la documentazione (incluso
i dati sull’autore e la versione) in formato HTML
Classi
La classe e’ la struttura base
Quando si instanzia (definisce)
una classe si crea un oggetto.
In java ogni cosa e’un oggetto a
cui si puo’ chiedere di eseguire operazioni su se
stesso.
I comportamenti associati a una
classe o oggetto sono implementati con metodi (funzioni).
Quindi quando scriviamo un programma
in java definiamo un oggetto (classe), al quale associamo
delle funzioni che specificano quali comportamenti
potra' avere.
Il codice java deve sempre iniziare
con la dichiarazione della classe, che deve avere
lo stesso nome del file .java
| Esempio: |
| Il file TestSwitch.java deve
iniziare con la dichiarazione della classe TestSwitch:
public class TestSwitch
|
Per convenzione i nomi di classe
iniziano con una lettera maiuscola.
Vai alla sezione:
Classi e metodi
Applicazioni e Applet
In java si possono creare sia applicazioni
stand alone (devono implementare il metodo main())
sia applet da aggiungere a pagine HTML e quindi scaricabili
attraverso internet e eseguite da browser che implementano
la JVM (Java Virtual Machine).
vai alla sezione applet
Il metodo main()
Usato solo per le applicazioni,
ed eseguito per primo quando si lancia l'applicazione.
| Caratteristiche: |
| Accetta un array di elementi
di tipo stringa
void =
che non produce risultato.
static
= Usato per scrivere un pezzo di programma
senza creare un oggetto o per scrivere un
metodo che non sia associato ad un particolare
oggetto.
public static void main(String,
args[])
|
| Esempio: |
| /**
* Visualizza la scritta:
Hello World!
*/
class HelloWorldApp
{
public static void
main(String[] args) {
System.out.println("Hello
World!");
}
}
|
Variabili
Per convenzione i nomi di variabile
iniziano con una lettera minuscola.
Se un nome di variabile e’ comprensivo
di piu’ parole (come isVisible) le parole vengono
congiunte e la prima lettera di ogni parola congiunta
e’ maiuscola.
Le variabili in java possono essere
dei seguenti tipi:
boolean
byte
char
double
float
int
long
short
Operatori
Aritmetici
| + |
somma
(es. op1 e op2) |
| - |
Sottrazione |
| / |
divisione |
| % |
calcola
il resto della divisione tra op1 e op2 |
| +op |
indica
un valore positivo |
| -op |
indica
un valore negativo |
| var++ |
equivale
a scrivere: var = var + 1 |
Di relazione
| > |
maggiore |
| >= |
maggiore
o uguale |
|
< |
minore |
| <= |
minore
o uguale |
| == |
uguale |
| != |
diverso |
Condizionali
| && |
AND
(& = && per valori booleani) |
| || |
OR |
= || per valori booleani) |
| ! |
false
(es !op = op e’ falso) |
Operazioni tra i bit
| >> |
es.
op1>>op2, sposta i bit di op1 a destra di
op2 posizioni |
|
<< |
(>>
e << , se op2="1," equivale a moltiplicare
o dividere op1 per 2) |
| & |
AND
tra i bit |
| | |
OR tra
i bit |
| ^ |
XOR
tra i bit |
| ~ |
Complemento |
Operatori di assegnazione
| var=x |
assegna
a var il valore x |
scorciatoie:
| += |
op1 +=
op2 = equivale a scrivere: op1=op1+op2 |
| -= |
|
| *= |
|
| /= |
|
| %= |
|
| &= |
op1&=op2
( op1=op1&op2) |
| |= |
|
| ^= |
|
| >>= |
|
| >>>= |
|
Controlli
di flusso
Si possono dividere in 2 famiglie:
1) Di decisione : Eseguono
una certa parte di codice in base al verificarsi o
meno di una condizione.
2) DI LOOP : Ripetono una o piu' istruzioni fino al verificarsi
di una condizione specificata.
if-else(/elseif)
L'istruzione "if-else" e' usata per verificare una
condizione booleana e in base al valure true (o false
tramite else) eseguire un determinato pezzo di codice.
elseif e' usato per concatenare piu' espressioni if.
| if (espressione)
statment
(else)
statment
(elseif espressione)
|
La notazione ? equivale a IF/ELSE
| Esempio: |
| delay=(fps>0) ? (1000/fps):100
equivale a:
if(fps>0) / 1000/fps
/ else 100)
|
| Esempio: |
//:Args.java
// Determina se passata una stinga
// sulla riga di comando
public class Args {
public static void main(String args[])
{
if (args.length < 1) {
System.out.println("Nessun argomento");
}
else {
System.out.println("Stringa digitata:
" + args[0]);
}
}
}
|
Eseguendolo si avra’:
| java Args |
Nessun argomento |
| java Args prova |
Stringa digitata:
prova |
switch-case
Usato per definire quale pezzo di codice (statment)
eseguire in base al valore di una variabile (utile
per eviatare lunghe catene di if-elseif).
switch (variabile){
case 1 : statment
; break;
case 2 : statment
; break;
……..
default : statment
; break;
}
|
break e’ usato per interrompere
il controllo degli altri "case" se non interessano
| Esempio: |
| //:TestSwitch.java
public class TestSwitch
{
public static void
main(String args[]) {
String valore =
new String();
for(int i=1 ;
i<10 ; i++) {
switch (i) {
case 1 : System.out.println("uno");break;
case 3 : System.out.println("tre");break;
case 5 : System.out.println("cinque");break;
case 7 : System.out.println("sette");break;
case 9 : System.out.println("nove");break;
default : System.out.println("numero pari");break;
}
} } }
<10 ; i++) {
case 1 : System.out.println("uno");
break;
case 3 : System.out.println("tre");
break;
case 7 : System.out.println("sette");
break;
case 10 : System.out.println("dieci");
break;
}
}
}
|
for
Ripete il ciclo fino a quando il
controllo non produce un risultato "false".
| for (inizializzazione;
condizione/termine; incremento) {
statment
}
|
while e do
while
Eseguono tanti cicli finche' la
condizione produce un risultato "true/vero", in caso
contrario esce dal loop.
| while (espressione
booleana) {
statment
}
|
| do {
statment (dichiarazioni)
} while (espresione booleana)
|
| Esempio: |
//: TestLoop.java
public class TestLoop {
public static void
main(String args[]) {
int i;
System.out.println("Ciclo
FOR...");
for(i=0 ; i<5
; i++) {
System.out.println("i
= " + i);
}
int y = 0;
System.out.println("Ciclo
WHILE...");
while (y<5) {
System.out.println("y
= " + y);
y++;
}
int x = 0;
System.out.println("Ciclo
DO_WHILE...");
do {
System.out.println("x
= " + x);
x++;
} while (x<5);
}
}
|
<5 ; i++) {
System.out.println("i=" + i);
} int y = 0;
System.out.println(" Ciclo WHILE...");
while(y<5) {
System.out.println("y=" + y);
y++; }
int x = 0; System.out.println("
Ciclo DO_WHILE...");
do {
System.out.println("x=" + x);
x++; } while(x<5);
} }</pre> <p> <a
href=" #INIZIO">
Concatenare stringhe
Per concatenare stringhe si usa
il simbolo "+"
Es: System.out.println("Nome
" + "Cognome")
(nel caso si voglia concatenare
a una stringa un intero, viene automaticamente chiamato
il metodo toString()
| Esempio: |
//: Concatena.java
public class Concatena {
public static void
main(String args[]) {
int telefono = 123456;
System.out.println("Nome " + "Cognome " + telefono);
}
} |
Passare
argomenti all’applicazione dalla linea di comando
Per eseguire un applicazione java
e passargli un argomento, basta far seguire al nome
dell' applicazione il valore desiderato: verra’interpretato
come una stringa e memorizzato nell’array di stringhe
args[] definito in main
| Esempio: |
//:Args.java
// Determina se passata una stinga
// sulla riga di comando
public class Args {
public static void main(String args[])
{
if (args.length < 1) {
System.out.println("Nessun argomento");
}
else {
System.out.println("Stringa digitata:
" + args[0]);
}
}
}
|
Convertire
una stringa in un numero
Questa operazione viene eseguita
dal metodo parseInt()
| Esempio: |
//: StringaInItero
public class StringaInIntero {
public static void
main(String args[]) {
int i;
String text = new String("1");
i = Integer.parseInt(text);
int y=10;
y = y+i;
System.out.println("Valore di y = " + y);
}
} |
Generare
dei numeri casuali
| Esempio: |
//: Casuale.java
public class Casuale {
public
static void main(String args[]) {
int x;
x = ((int) (Math.random() * 10));
System.out.println("Numero casuale da 0 a 9
= " + x);
}
} |
Oggetti
Un nuovo oggetto deve essere:
- dichiarato (type nome) [es. Date
today]
- instanziato (con: new)
- inizializzato (costruttore) [es.
date() / rectangle(0,0,100,100)]
es.
Date today = new Date()
Rectangle rect = new rectangle(0,0,100,200)
Eliminare un
oggetto
1) Viene eliminato automaticamente
dal Garbage collector (collettore di immondizia) System.gc
2) Forzatamente con il metodo Finalize
Array
Servono per associare un indice
numerico ad un oggetto di tipo conosciuto o a primitive.
La dimensione e’ fissata al momento
della creazione (allocazione) e non puo’ essere variata.
| Gli
array devono essere dichiarati: |
int[]
ArrayOfInt; |
| e instanziati
per allocargli memoria: |
ArrayOfInt
= new int[10] |
| (Forma
compatta: int[] ArrayOfInt = new int[10] ) |
metodi:
ArrayOfInt.lenght
= propieta’ degli array che fornisce la lunghezza
(nell’esempio e’ 10)
Gli array di stringhe oltre a dover
essere dichiarati e instanziati devono essere anche
riempiti
| Esempio: |
| //: TestArray.java
public class TestArray
{
public static void
main(String args[]) {
String[] ArrayOfString
= new String[10];
for(int i=0 ; i
<ArrayOfString.length ; i++) {
ArrayOfString.length[i]
= new String("Hello " + i);
System.out.println("ArrayOfString["+i+"]
= " + ArrayOfString[i]);
}
}
}
|
Vector
Associa un indice numerico a soli
oggetti (no primitive) e puo’ ridimensionarsi dinamicamente.
Metodi:
size() = restituisce
il numero degli elementi
addElement() =
aggiunge un elemento
elementAt() = restituisce
il valore dell’elemento passato come argomento
L’oggetto Vector fa parte del package
java.util , quindi bisogna importare tale pakage (all’inizio
del programma) con il comando:
import java.util.*;
o import java.util.Vector;
BitSet
Vettore di bit
Stack
(deriva da Vector) Contenitore LIFO
(Last Input First Output)
Hashtable
(deriva da dictionary) Associa una
serie di oggetto "chiave" a un'altra sequenza di oggetti
Metodi:
size()
isEmpty()
put(Object key, Object value)
get(Object key)
remove(Object key)
containsKey(Object key)
| Esempio: |
//:TestHashtable
import java.util.*;
public class TestHashtable {
public static void main(String
args[]) {
Hashtable
h = new Hashtable();
h.put("uno",
new Integer(1));
h.put("due",
new Integer(2));
h.put("tre",
new Integer(3));
Integer
num1 = (Integer)h.get("uno");
Integer
num2 = (Integer)h.get("due");
Integer
num3 = (Integer)h.get("tre");
System.out.println("uno
= "+num1);
System.out.println("due
= "+num2);
System.out.println("tre
= "+num3);
}
} |
Enumeration
Nei contenitori visti prima (Vector,
BitSet, Stack e Hashtable) per gestire le informazioni/oggetti
contenuti, oltre ai propri metodi di gestione come
addElement(), elementAt(), etc. si puo’ usare Enumeration.
Enumeration trasforma in una lista
il contenitore di oggetti
Metodi:
nextElement() =
fornisce il prossimo elemento della lista
hasMoreElement()
= restituisce TRUE se ha altri elementi
elements() = converte
un vettore in Enumeration
| Es: Enumeration
e = vector.elements() |
| Esempio: |
//:TestEnumeration.java
import java.util.*;
class Oggetto {
private int numero;
Oggetto(int i) {
numero = i;
}
void stampa() {
System.out.println("Oggetto numero: " + numero);
}
}
public class TestEnumeration {
public static void main(String args[]) {
Vector contenitore = new Vector();
for(int i=0 ; i<5 ; i++) {
contenitore.addElement(new Oggetto(i));
}
Enumeration e = contenitore.elements();
while(e.hasMoreElements()) {
((Oggetto)e.nextElement()).stampa();
}
}
} |

|