Problema nel prevedere una stampa

di il
1 risposte

Problema nel prevedere una stampa

Salve!
Sono alle primissime armi con Java e, facendo qualche esercizio quest'oggi, mi son trovato a sbagliare spesse volte questa cosa.
Il codice era questo ( in varie salse, con numeri di telefono, nomi e via dicendo:
public class Libro {
    private String titolo;
    
    public Libro(String titolo){
        this.titolo = titolo;
    }
    
    public String getTitolo(){
        return this.titolo;
    }
    
    public String cambiaTitolo(String titolo){
        String vecchioTitolo;
        vecchioTitolo = this.titolo;
        this.titolo = titolo;
        return vecchioTitolo;
    }
    
    public static void main(String[] args) {
        Libro l1 = new Libro("Cime Tempestose");
        Libro l2 = new Libro("Il giocatore");
        
        l1.cambiaTitolo(l2.cambiaTitolo("Il signore degli Anelli"));
        System.out.println(l1.getTitolo());
        System.out.println(l2.getTitolo());
        
        l1 = l2;
        l1.cambiaTitolo(l2.cambiaTitolo("Shining"));
        System.out.println(l1.getTitolo());
        System.out.println(l2.getTitolo());
    }
}
Che come stampa da:
Il giocatore
Il Signore degli Anelli
Il Signore degli Anelli
Il Signore degli Anelli

Credo che le parti non chiare siano:
l1.cambiaTitolo(l2.cambiaTitolo("Il signore degli Anelli"));
Perchè l1 diventa "Il giocatore" e non "Il Signore degli anelli"? Non viene prima eseguito ciò che è tra parentesi, quindi il cambio titolo di l2 da Il giocatore a Il Signore degli anelli, e poi il cambio di l1 da Come Tempestose a Il Signore degli anelli essendo il nuovo l2?

ed anche
 l1 = l2;
        l1.cambiaTitolo(l2.cambiaTitolo("Shining"));
Perchè Shining non compare proprio?

Grazie mille e scusate per la domanda banale!!!!

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte