No, hai frainteso, l'ArrayList non va nella classe Contatto! Come dicevo Contatto è la tua entità di base, non ha senso che un contatto "sappia" che esistono altri contatti, ognuno è una cosa a sé stante.
Ci sono diversi modi per rendere l'ArrayList di contatti visibile a tutte le tue classi, alcuni sono un po' complicati quindi per ora ti consiglio il più semplice.
Per ora tutte le tue classi sono "innestate" dentro alla classe Rubrica, quindi ogni variabile dichiarata in Rubrica è visibile a tutte le tue classi.
Quindi ti basta dichiarare l'ArrayList di contatti come variabile di istanza di Rubrica. Facendo lo scheletro delle tue classi, intendo una cosa del genere:
Inoltre l'ArrayList non va istanziata nella classe FinestraVisualizzaContatto, perchè la sovrascriveresti all'apertura di ogni frame di quel tipo.codice:public class Rubrica { private ArrayList<Contatto> contatti; class Contatto { } public class FinestraVisualizzaContatto { } public class FinestraAggiungiContatto { } public class FinestraModificaContatto { } public class FinestraRimuoviContatto { } }
L'inizializzazione va fatta una sola volta, quindi ti consiglio di farla direttamente nel metodo main, priva di costruire un'istanza della classe Rubrica , o volendo anche nel costruttore di Rubrica, se ipotizzi di volere creare più di una Rubrica e quindi di volere separare le liste di contatti delle diverse Rubriche.