prosty problem ze zmiennymi

0

Witam. Mam mały problem. Do tej pory pisalem programy w C# a tera zmusiałem sie przesiasc do Javy niestety. Chodzi mi o to takie cos:
1#
Mam klase Osobnik i w niej zdeklarowaną zmienną:
public int WYMIAR = 0;
Nastepnie w niej taki oto konstruktor:

public Osobnik() {
        int los = 0;
        los = (int)(Math.random()*WYMIAR);
        osobnik = los;
    }

#2
W mainie tworze obiekt typu Osobnik
Osobnik os = new Osobnik();

no i wiem ze na razie WYMIAR = 0 bo nigdzie nie jest zdeklarowany ale !!
Kilka linijek kodu dalej mam tak:
os.WYMIAR = 256;

#3
Gdy potem chcĘ stworzyć pare obiektów typu Osobnik i wylosować dla nich z wartosc z przedziału <0,WYMIAR> to mi ciagle zera wali bo WYMIAR traktuje jako 0 a ja przeciez zdeklarowałem mu ze WYMIAR = 0;

Tak samo mam z ARRAYLIST gdzie w mainie tworze ta tablice i przepisuje w klasie osobnik to potem przy wywołaniu znowu jest wyzerowana. O co chodzi .. W C# nigdy nie miałem takich problemów a tu sie krzaczy jak cholera.

0

WYMIAR jest polem klasy Osobnik, więc jeśli jakiemuś Osobnikowi przypiszesz
os.WYMIAR = 256;
to tylko ten Osobnik będzie miał taki WYMIAR. No bo dlaczego niby nowy jakiś Osobnik miałby mieć ten sam WYMIAR co poprzedni, skoro to są 2 różne obiekty. Jeśli chciałbyś aby pole WYMIAR było wspólne dla wszystkich obiektów klasy Osobnik, musi je zadeklarować jako statyczne:
public static int WYMIAR;
wówczas pole to możesz później ustawiać tak:
Osobnik.WYMIAR=wartosc;

pzdr.

0

oooo WIELKIE DZIEKI Shimmi <ALLAHY>

0

Z tego co pamiętam na temat C# gdybyś ten kod przepisał na C# to działałby identycznie, bo koncepcja zmiennych statycznych działa w obu tych językach identycznie.

Pozdrawiam,

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