Wyliczanie stworzonych obiektów klasy..

0

Witajcie :)

Załóżmy, ze w klasie mam atrybut "int id" który mówi mi o identyfikatorze klasy.
Np.

[code]
Zbiornik z1 = new Zbiornik(200);
Zbiornik z2 = new Zbiornik(1000);
[/code]
Jak zrobić, aby atrybut "id" był automatycznie nadawany, od 1 do X dla tych klas.
Czyli jak dam:
[code]
System.out.println(z1.id);
System.out.println(z2.id);
[/code]

to wyświetli mi się 1,2 i tak dalej dla każdej klasy?
Aby te numery były nadawane automatycznie - pierwszy to numer 1, drugi to numer 2 itd.

Jak to zrobić?

Dzięki z góry za pomoc :)

0

Coś takiego

public class Zbiornik
{
    static int licznik=0;
    int id;
    .....
    public Zbiornik(int pojemność)
    {
        licznik++;
        id=licznik;
        ....
    }
}

BTW, kod umieszczaj w znacznikach < code=java> < /code> (bez spacji).

0

na przykład...

class Cos{
 private static volatile int staticId = 1;
 private int id;

 public Cos() {
   id = staticId++;
 }

 public int getId()
 {
   return id;
 }
}
0

A co jeżeli jakis obiekt zostanie usunięty?

0

Będzie dziura w numeracji.

0

A jeżeli chcesz tego uniknąć, to zawsze można słabą referencję (WeakReference) do takiego obiektu pakować do statycznej listy (np. LinkedList), która wtedy utrzyma numerację. W każdym razie pozwoli to w każdym momencie przeiterować po wszystkich aktywnych obiektach takiej klasy (które nie idą do śmieci). Czasem w tym samym celu można stworzyć HashMapę, w której obiekty takie będą kluczami lub wartościami. Zależnie od potrzeb.

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