"Upublicznienie" obiektu zadeklarowanego w metodzi

0

Oto przykład problemu z jakim aktualnie walczę.

Zadeklarowałem taką klasę:

public class konto {
String wlasciciel;
int debet;

    public konto(String w, int d)
    {
    wlasciciel = w;
    debet = d;
    }
}

Następnie chcę by za pomocą różnych przycisków tworzył mi różne obiekty opierające się na tej klasie np.

    private void ButtonNoweKonto1_actionPerformed(ActionEvent e) {
       konto k1 = new Konto("Nowak", 100);
    }

private void ButtonNoweKonto2_actionPerformed(ActionEvent e) {
       konto k1 = new Konto("Kowalski", 150); // lub k2 jezeli musi byc inna nazwa...
    }

Oraz później chciałbym móc w innej metodzie dokonywać operacji na tych obiektach

np.

    public void drukuj() {
      System.out.println(k1.wlasciciel);
    }

Niestety wtedy kompilator zwraca uwagę, że nie widzi k1 (co jest dosyć zrozumiałe bo k1 jest zadeklarowane w metodzie dotyczącej przycisku i tylko tam funkcjonuje.

Jak sobie z tym poradzić?

Nie chcę tworzyć na początku pustych obiektów konto k1 = new konto() i potem je modyfikować ponieważ mój program jest dosyć złożony i takie rozwiązanie nie wchodzi w grę.

Da się w ogóle coś takiego zrobić?

Pozdrawiam

0

przekaz obiekt (a zeby bylo precyzyjniej: referencje do niego) jako parametr do metody drukuj

0

Zrob sobie klase ZbiorKont, ktora bedzie przechowywac konta. I zamiast tworzyc nowe konto tak, jak to robisz mozesz wtedy dac: zbiorKont.dodajKonto("Kowalski", 100); a potem, gdy jakiegos potrzebujesz, to Konto k = zbiorKont.pobierzKonto("Kowalski");

Konta mozesz przechowywac np w HashMapie, gdzie kluczem jest String (nazwisko posiadacza).

1 użytkowników online, w tym zalogowanych: 0, gości: 1