Witam, czy ktoś może mi wytłumaczyć o co w tym chodzi, skąd się wziął wynik itd?
A czego nie rozumiesz?
no właśnie niczego tu nie rozumiem, skąd taki wynik się wziął ani nic
Sprawdź co oznacza w javie static.
Modyfikator static oznacza iż pole obiektu ma taką samą wartość dla wszystkich obiektów danej klasy. I co mi to dało?
Dlatego jest b a nie a
A jaki Twoim zdaniem wynik powinien wyjść? Bo rozumiem, że umiesz Javę na tyle, by móc chociażby zgadnąć (być może błędnie) jaki wynik będzie z podanego kodu?
Test t2 = new Test(30, 40)
Po tej linii x
ma wartość 30
ale dlaczego po tej linii ma taką wartość?! nic z tego nie rozumiem
Wynik dało.
Bo
public Test(int n, int m) {
x = n;
Hubcio222 napisał(a):
ale dlaczego po tej linii ma taką wartość?!
Bo jak już sam napisałeś - static oznacza iż pole obiektu ma taką samą wartość dla wszystkich obiektów danej klasy
x = n, ok rozumiem, ale dlaczego 30 a nie 10?
Bo
Test t2 = new Test(30, 40)
czyli n
ma wartość 30
.
hmm, czyli liczy się jakby to drugie, a co z linijką Test t1 = new Test (10, 20) ? Tutaj x ma wartość 10
A jak masz
x = 10;
x = 30;
to jaką wartość ma x
po tych 2 liniach?
ok ogarniam dzięki panowie, jestem ultraidiotą jeśli chodzi o programowanie
I to jest właśnie efekt nieadekwatnego nazewnictwa zaproponowanego przez projektantów języka Java. Zamiast słowa
static
o wiele czytelniejsze byłoby nazwanie takiej zmiennej bardziej opisowo. Bo tu static
tylko wprowadza w błąd.