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
@Aureos: Z opisu błędu wynika raczej, że próbujesz ze statycznej metody odwołać się do zmiennej zadeklarowanej dla instancji klasy, a tak nidyrydy. Czemu ta metoda musi być statyczna?
@Aureos: metoda statyczna nie może odwoływać się do pól klasy które nie są statyczne, usuń static z metody albo dodaj static przed nazwa zmiennej jeżeli ma być wspólna dla wszystkich instancji danej klasy
@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 :)
#java #programowanie
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
prosty hangman @ManfredMacx: