Wpis z mikrobloga

Dlaczego nie mogę zadeklarować zmiennych pod nazwą klasy, wspólnych dla wszystkich metod w tej klasie? Pewnie się mylę bo się nie znam, ale byłoby to logiczne i przydatne

non-static variable reader cannot be referenced from a static context


#java #programowanie
  • 7
@Czesiowcy: @mentalna_zielonka: dodałem 'static' przed zmiennymi i już jest ok
nie mogłem usunąć static z metody bo była to główna metoda klasy i wywalało błąd że musi być static

przeczytałem dosc obszerne wyjaśnienie ze stackoverflow na ten temat i nadal nie rozumiem do czego to służy no ale ok :D
@Aureos: Metoda statyczna - z definicji - nie potrzebuje instancji. Wywołujesz ją poprzez nazwę klasy, a nie z danej, konkretnej instancji, utworzonej np. poprzez "new". Kompilator uniemożliwia więc odwoływanie się z metody statycznej do zmiennych lub metod, które takiej instancji potrzebują, tj, do wszystkich memberów niestatycznych.
@Aureos: Wrzucanie wszędzie static tylko dlatego żeby main() ruszył to słaba praktyka, wydziel sobie inna klasę w której wrzucisz metody guess i printWord. Albo możesz nawet wszystko wyrzucić do innych klas, a w main() tylko stworzyć obiekt/obiekty i wywołać jakieś ich metody :)