Stamattina ho fatto copia/incolla del codice che hai postato tu.
Poi ho creato una classe Esame che contiene un nome, un voto e un valore CFU.
Poi ho creato questa classe di test:
codice:
public class TestEsami {
public static void main(String[] args) {
Esame e1 = new Esame("PROGRAMMAZIONE", 27, 12);
Esame e2 = new Esame("STORIA DELL'ARTE", 18, 5);
Esame e3 = new Esame("ARCHITETTURA DEGLI ELABORATORI", 26, 6);
Esame e4 = new Esame("LINGUAGGI DI PROGRAMMAZIONE I", 28, 12);
Esame e5 = new Esame("ANALISI I", 24, 9);
Librettoesame libretto = new Librettoesame();
libretto.addEsame( e1 );
libretto.addEsame( e2 );
libretto.addEsame( e3 );
libretto.addEsame( e4 );
libretto.addEsame( e5 );
String daStampare = libretto.stampaPunti();
System.out.println( daStampare );
}
}
Questo è il suo output:
codice:
ANALISI I..................... 9 CFU - 24/30
Come già detto, infatti, viene stampato solo l'ultimo (perchè ad ogni iterazione, tutto ciò che avevi concatenato è andato perso). Quindi, come ho già detto ieri, tu non stai eseguendo il codice che hai postato.
E' molto probabile che tu stia usando un ambiente di sviluppo (che non hai specificato). Posso ipotizzare che tu stia lanciando una compilazione + esecuzione e che vi siano degli errori in compilazione da qualche altra parte. Questo blocca la compilazione, che non va a cancellare il risultato dell'ultima compilazione andata a buon fine e l'esecuzione successiva avviene proprio con la "copia vecchia" dei compilati.
E' solo una supposizione: accertati del motivo reale per il quale tu stai eseguendo un codice diverso da quello che hai postato.
Ciao.