Rappresentano l'inizio e la fine del corpo di una classe appunto anonima. In pratica tu stai definendo una classe che
estende un interfaccia Destinazione che potrebbe anche essere vuota. Solo che i metodi e le proprietà di questa classe
sono interne (annidate) in una un altra classe. Per poter ottenere un istanza della classe anonima avrai sempre bisogno
della classe che la contiene.
Credo però che tu abbia omesso di riportare il frammento di codice che definisce l'interfaccia Destinazione.
Attenzione i metodi come getDestinazione() devono essere dichiarati nell'interfaccia altrimenti non potrai richiamarli.
interface Destinazione
{
public String getDestinazione();
}
class ClsSpedizioni {
public Destinazione destinazione(final String paeseDest, final int qtyDest)
{
return new Destinazione() {
private String paese = paeseDest;
private int qty;
{
qty = qtyDest;
if (qty > 1000) {
System.out.println("Ecceduti limiti di carico");
}
}
public String getDestinazione() {
return paese;
}
};
}
}
// Esempio di utilizzo
ClsSpedizioni csp = new ClsSpedizioni();
Destinazione oDest = csp.destinazione("Italia", 100);
String dest = oDest.getDestinazione();