C'è qualcosa che non mi torna su un esercizio riguardante l'utilizzo dei reference.
La traccia dell'esercizio è la seguente:
Utilizzare una classe Persona che dichiara le variabili nome, cognome, eta. Si dichiari inoltre il metodo dettagli() che restituisca in una stringa le informazioni sulla persona in questione.
Utilizzare una classe Principale che, nel metodo main(), istanzia due oggetti chiamati persona1 e persona2 della classe Persona, inizializzando per ognuno di essi i relativi campi adoperando l'operatore dot.
Dichiarare un terzo reference (persona3) che punti ad uno degli oggetti già istanziati. Controllare che effettivamente persona3 punti all'oggetto voluto, stampando i campi di persona3 sempre tramite l'operatore dot.
Commentare adeguatamente le classi realizzate e sfruttare lo strumento javadoc per produrre la relativa documentazione.
La mia soluzione è questa:
codice:
/**
definizione della classe Principale    
*/
public class Principale
{
    public static void main(String args[])
    {
        Persona persona1 = new Persona(); /**creazione oggetto persona1*/
        persona1.nome = "mario";    /**assegnazione di uno specifico valore al campo nome*/
        persona1.cognome = "rossi";    /**assegnazione di uno specifico valore al campo cognome*/
        persona1.eta = 30;        /**assegnazione di uno specifico valore al campo data*/
        persona1.dettagli();        /**invocazione del metodo dettagli per stampare le generalità della persona*/
        Persona persona2 = new Persona();
        persona2.nome = "giovanni";
        persona2.cognome = "bruni";
        persona2.eta = 40;
        persona2.dettagli();
        Persona persona3 = persona1;    /**in questo modo l'oggetto persona3 punto ad un oggetto creato in precedenza ma i cui campi non sono ancora inizializzati*/
        persona3.dettagli();
    }
}
codice:
/**
definizione della classe Persona
*/
public class Persona
{

    /**
    definizione delle variabile d'istanza
    */
    public String nome;
    public String cognome;
    public int eta;

    
    /**
    definizione del metodo dettagli che permette di restituire una stringa con i dettagli della persona
    */
    public String dettagli()
    {
        String dettagli = nome + " " + cognome + " " + eta;
        System.out.println(dettagli);
        return(dettagli);    
    }
}

I miei dubbi sono:
1) Non ci sono errori in compilazione però l'output generato a mio avviso è errato:
mario rossi 30
giovanni bruni 40
mario rossi 30
è errato poichè restituisce di nuovo "mario rossi 30" nonostante l'oggetto persona3 punta a persona1 che è creato con un costruttore di default che dovrebbe inizializzare le variabili d'istanza con i valori di default e non con quelli inseriti tramite l'operatore dot.





2) ho generato la javadoc ma non sono certo che i commenti vadano inseriti in quel modo per generare una corretta javadoc.