Vediamo se ho capito. Allora, relativamente a questo argomento ho fatto un esercizio. Questa è la traccia:
Creare una classe Risultato che dichiari una sola variabile d'istanza di tipo float e di nome risultato. Aggiungere eventuali metodi e costruttori utili. Creare una classe CambiaRisultato con un metodo public di nome cambiaRisultato() che prende in input un oggetto di tipo risultato e ne modifica la variabile interna risultato sommandola con un altro valore. Creare una classe con un metodo main() di nome TestRisultato che stampi la variabile risultato di un oggetto di tipo Risultato, prima e dopo che questo oggetto sia passato in input al metodo cambiaRisultato() di un oggetto di tipo CambiaRisultato.
la mia soluzione è questa:
codice:
public class TestRisultato
{
public static void main(String args[])
{
Risultato oggetto1 = new Risultato();
oggetto1.stampa();
CambiaRisultato oggetto2 = new CambiaRisultato();
oggetto2.cambiaRisultato(oggetto1);
}
}
codice:
public class Risultato
{
float risultato;
public float somma(float valore)
{
risultato = risultato + valore;
return(risultato);
}
public void stampa()
{
System.out.println(risultato);
}
}
codice:
public class CambiaRisultato
{
public void cambiaRisultato(Risultato oggetto)
{
oggetto = new Risultato();
oggetto.somma(10);
oggetto.stampa();
}
}
E' corretto dire che le righe di codice che ho evidenziato sono esattamente quelle che permettono all'oggetto2 di puntare alla locazione di memoria di oggetto1? Inoltre direi che in particolar modo è proprio new Risultato() presente nel metodo cambiaRisultato ad "indicare" a oggetto2 dove deve puntare.
Sono corrette queste considerazioni?