• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Licznik obiektów klasy

Object Storage Arubacloud
0 głosów
801 wizyt
pytanie zadane 15 lutego 2019 w Java przez mn130496 Gaduła (3,530 p.)
Witam jestem studentem informatyki i ostatnio postanowiłem doszkolić się w Javie. Mam takie zadanie: zaimplementuj mechanizm statycznego licznika obiektów klasy i pokaż przykładowe zastosowanie. Licznik ma się zwiększać w konstruktorzy a zmniejszać w destruktorze. Ponieważ programowanie nie jest moją mocną stroną nie wiem jak to zro ić. Czy ktoś mógłby mi pomóc?  Z góry dziękuję pozdrawiam
komentarz 15 lutego 2019 przez Tomek Sochacki Ekspert (227,510 p.)
nie widzę za bardzo sensu takiego licznika, jeśli już chcemy jakoś panować nad apka to np. bada się zużycie pamięci, obciążenie cpu itp. no i w javie finalize nie jest zalecane, nie masz 100% gwarancji że będzie wywołane.
komentarz 16 lutego 2019 przez mbabane Szeryf (79,280 p.)
W tym ćwiczeniu pewnie chodzi o to aby pokazać o co chodzi ze zmiennymi statycznymi, że są one globalną zmienną klasy, a nie obiektu (co pewnie wiesz lepiej ode mnie). Być może też chodzi o to aby zbadać, że finalize nie ma sensu. Być może jest też tak, że to zadanie jest z tych podchwytliwych i poprawną odpowiedzią jest "nie da się bo...". Pod takim kątem według mnie takie eksperymenty są jak najbardziej słuszne.

3 odpowiedzi

+2 głosów
odpowiedź 15 lutego 2019 przez RafalS VIP (122,820 p.)
Powiedz autorowi zadania, że tego się nie da zrobić, bo w Javie nie ma destruktorów. Jest finalize, które jest deprecated i nie ma żadnej gwarancji, że zostanie wywołane, a dla krótkich testowych programów przeważnie nie będzie.
0 głosów
odpowiedź 15 lutego 2019 przez Secrus Nałogowiec (32,880 p.)
zrób zmienną statyczną w klasie i w konstruktorze inkrementuj, w destruktorze dekrementuj
komentarz 15 lutego 2019 przez Asertywny Mądrala (5,430 p.)
komentarz 16 lutego 2019 przez Secrus Nałogowiec (32,880 p.)
Nie znam Javy, podałem rozwiązanie uniwersalne
0 głosów
odpowiedź 15 lutego 2019 przez Asertywny Mądrala (5,430 p.)
class MyClass {

    static int counter;

    MyClass() {
        counter++;
    }

    @Override
    protected void finalize() {
        counter--;
        super.finalize();
    }

}

Pamiętaj przy tym, że metoda "finalize()" jest deprecated i nie powinno się jej używać w produkcji.

Podobne pytania

0 głosów
1 odpowiedź 647 wizyt
pytanie zadane 18 grudnia 2018 w Java przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 313 wizyt
pytanie zadane 25 marca 2021 w C i C++ przez kacper1445 Gaduła (4,880 p.)
0 głosów
0 odpowiedzi 542 wizyt
pytanie zadane 29 listopada 2018 w Java przez mn130496 Gaduła (3,530 p.)

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...