| interface |
| Le interfacce (interface)
servono a definire un modello di comportamento che le classi devono
implementare.
Diversamente dalla gerarchia delle classi che è ad ereditarietà singola, la gerarchia delle interfacce è ad ereditarietà multipla. Le interfacce possono ereditare da più "interfacce madri", esse passano alle loro "interfacce figlie" solo descrizioni di metodi (comportamenti) ma non implementazioni e né variabili istanza. Le interfacce, per default, non ereditano da Object che è una classe, e non esiste una "superinterfaccia madre" (diversamente dalla gerarchia delle classi dove Object è la superclasse di tutte le Classi). Tutti i metodi definiti in un'interfaccia sono implicitamente public e abstract e non possono essere private. Le variabili sono implicitamente publicstatic e final. L'ereditarietà tra
le interfacce la si ottiene con la keyword extends.
Vedere anche: implements, extends,class |
| Esempio:
public interface MiaInterfaccia { public static final int i = 10; int j = 0; //diventa public static final public
abstract int MioMetodo();
Esempio2:
|
| long |
| Tipo di dato primitivo che
rappresenta valori compresi fra –9223372036854775808 a 9223372036854775807
inclusi.
Vedere anche: short, byte, int, char |
| native |
| I "metodi native" sono metodi
dichiarati in Java ma implementati tramite un linguaggio diverso, solitamente
in C, e compilati in una libreria dinamica (DLL).
Vengono utilizzati, generalmente, per motivi di efficienza o per accedere a particolari risorse non direttamente accessibili da Java. Vedere anche: static |
| Esempio:
public class MiaClasse { ... public native ApriFile(); }
|
| package |
| I package rappresentano
lo strumento impiegato da Java per organizzare e raggruppare classi
e interfacce "simili". In pratica i package consentono di organizzare librerie
di classi e interfacce.
Per creare un package si una la keyword package seguita dal nomePackage. Se l'istruzione package appare nel file.java essa deve trovarsi all'inizio del fine prima di ogni altra istruzione (eccetto commenti e righe vuote). Un package, a sua volta puo' contenere altri package (sottopackage). L'organizzazione è di tipo gerarchico (ad albero) ed è ottenuta usando la notazione '.' (punto). A livello di organizzazione
su disco i package devono riflettere la stessa struttura gerarchica mediante
directory e sottodirectory. Piu' package possono essere archiviati in un
unico file (file.zip o file.jar).
E' consuetudine mettere come prefisso ai nomi dei package il nome del dominio dell'organizzazione che creato il package. Poichè viene già garantita l'univocità dei nomi di dominio si risolve il problema del conflitto dei nomi tra le classi. Vedere anche:import |
| Esempio:
package primoPackage; public class MiaClasse { ... } Esempio2: package primoPackage.secondoPackage; public class tuaClasse { ... } Esempio3: package it.azienda.primoPackage; public class primaClasse { ... } |
| return |
| Interrompe l'esecuzione del metodo corrente e restituisce il controllo allo statements chiamante. |
| short |
| Tipo di dato primitivo che rappresenta valori compresi tra –32768 a 32767, inclusi. |
| super |
| La keyword super
fa riferimento all'istanza superiore nella gerarchia delle classi.
Se ho ridefinito un metodo (overriding) ma voglio richiamare lo stesso della superclasse allora usosuper.nomeMetodo(). Se nel costruttore di una classe voglio richiamare il costruttore della superclasse allora uso, nella prima riga del costruttore, super(). Nel caso utilizzo super nel distruttore (finalize) di una classe allora va invocato nell'ultima riga. Vedere anche: this |
| switch |
| L'istruzione switch
permette di eseguire porzioni diverse di codice in base al risultato di
un confronto.
Il confronto avviene tra il valore fornito e quelli indicati nelle varie clausole case. E' necessario inserire la keyword break per interrompere il confronto. E' opzionale l'istruzione default che viene eseguita se nessun case soddisfa il confronto o se non vi sono break. I valori di confronto dell'istruzione switch devono essere di tipo primitivo convertibili a int (byte, char, int, short). Vedere anche: if |
| Esempio:
switch (test) { case valUno: ... break; case valDue: ... break; default: valDefault; } Esempio2: switch (i) { case 2: case 4: case 6: case 8: System.out.println("Pari"); break; default: System.out.println("Dispari");; } |
| synchronized |
| La keyword synchronized
è legata, generalmente, al multithreading del linguaggio Java. Essa
indica alla Java Virtual Machine di proteggere un blocco di codice da eventuali
accessi simultanei in modo che soltanto un thread ha la possibilità
di eseguire quel blocco di codice e gli altri thread devono aspettare.
La keyword può essere utilizzata per controllare l'accesso ad un blocco di codice, una variabile, un metodo o un'intera classe. Vedere anche: volatile |
| Esempio:
public synchronized void add() { i++; } Esempio2:
|
| this |
| La keyword this fa
riferimento all'istanza corrente di una classe.
Se in un metodo ho definito una variabile locale con lo stesso nome di una variabile definita nella classe allora posso far riferimento alla variabile della classe mediante this.nomeVariabile. Se devo passare, ad un metodo l'oggetto stesso allora utilizzo istanza.nomeMetodo(this). I metodi dichiarati static
non possono utilizzare this.
|
| throw |
| La keyword è associata
alla tecnica di gestione delle condizioni di errore o di eccezioni usata
dal linguaggio Java. Essa consente, all'interno di uno statement, di
generare o rilanciare un'eccezione.
Le eccezioni che possono essere generate da un metodo devono essere elencate nella clausola throws del metodo stesso. Un'eccezione è un oggetto che rappresenta un'istanza della classe Throwable (o una sua sottoclasse). Vedere anche: try |
| Esempio:
public void metodoConEccezione() throws MiaEccezione { ... if (condizioneDiErrore) { throw new MiaEccezione(); } } Esempio2:
|
| void |
| Dichiara un metodo che non restituisce nessun tipo di dato |
| Esempio:
public void mioMetodo { System.out.println("Salve mondo!"); } |
| volatile |
| La keyword volatile
è legata, generalmente, al multithreading del linguaggio Java. Essa
indica alla Java Virtual Machine (JVM) che una variabile può essere
modificata in modo "asincrona" da diversi thread. La JVM in questo modo
ricarica e salva in memoria il valore della variabile ad ogni accesso alla
variabile.
Una variabile volatile
non può essere final.
|
| Esempio:
class Test { static volatile int i = 0, j = 0; static void one() { i++; j++; } static void two() { System.out.println("i=" + i + " j=" + j); } } |
| while |
| Il ciclo while esegue
ripetutamente un'istruzione o un blocco fino a quando una "condizione"
booleana diventa falsa.
Vedere anche: do |
| Sintassi:
while (condizione){ statement; } |
Riferimenti
Bibliografici
|