Originariamente inviato da andbin
Le variabili locali sono appunto ... locali. E non è possibile in alcun modo accedere alle variabili locali di un metodo, se non solamente dall'interno del metodo stesso!
Comunque il metodo cercaNome() che hai scritto segue una filosofia sbagliata. Si potrebbe riscrivere in modo molto più furbo così:
codice:
public Persona cercaNome (String nome)
{
for (Persona contatto : contatti)
{
if (nome.equals (contatto.getNome ()))
return contatto;
}
return null;
}
Cosa ho fatto? Semplicemente appena trovo il nome ricercato, faccio ritornare il reference all'oggetto Persona che ho trovato. Altrimenti faccio ritornare null.
Nel metodo che hai scritto, vedo che fai diverse operazioni di output con println. Dovresti iniziare a capire che è buona cosa separare ciò che è la gestione di una interfaccia utente da ciò che è la gestione di strutture dati, calcoli, ecc... o comunque logica "interna".
Cioè non mischiare troppo logica, strutture dati, output. E se io avessi voluto usare le tue classi Rubrica/Persona in una applicazione grafica in Swing?? Che mi servivano le println di output?
Separa bene le cose: la tua classe che gestisce l'applicazione "sa" che tipo di interfaccia utente usare e quindi come fare l'input/output. Le classi Rubrica/Persona non dovrebbero "sapere" nulla della interfaccia utente.