Funkcja na tablicy integerow

0

Cześć. Mam nastepujace kawalki kodu:
Klasa Punkt:
protected int ruchy=0;
public int PodajRuchy()
{ return ruchy; }

Klasa Figury dziedziczaca po klasie Punkt:
public int[] Wszystkie_ruchy(){
int tab[] = null;
for(int i=0; i<figury.length; i++){
tab[i] = figury[i].PodajRuchy();
}
return tab;
}

Czemu w kolejnym pliku nie dziala mi nastepujacy kawalek kodu:
int tab[];
tab = rysunek.Wszystkie_ruchy();

(gdzie rysunek jest obiektem klasy figury) ??

0

co to znaczy "nie działa"?

0

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at aplet.Figury.Wszystkie_ruchy(Obraz6_1.java:182)

0

nie utworzyłeś instancji klasy, tzn, obiekt, do którego odwołujesz się w linijce 182 ma wartość null; być może nie przypisałeś do niego new Rysunek(...)
[edit]
albo to też to:

     int tab[] = null;
     for(int i=0; i<figury.length; i++){
         tab[i] = figury[i].PodajRuchy();

tab ma wartość null, a Ty odwołujesz się do jej komórek. null nie ma komórek.

0

W linijce 182 odwoluje sie do obiektu ktory istnieje i prawidlowo dziala bo uzywam go w wielu miejscach. Co do drugiego bledu to jak poprawilem null na {0,0,0,0,0,0} to dalej jest ten sam błąd.

0

Zmienna rysunek użyta w wierszu 182, może być różna od zmiennej rysunek użytej w innym miejscu tej samej klasy, np. w jednym miejscu jest zmienna lokalna, a w drugim miejscu jest pole klasy.

0

sobie popraw inicjalizację długości tablicy na taką, jaką dajesz w pętli for, a nie z palca. ale błąd pewnie masz w niezainicjowanej prawidłowymi wartościami tablicy figury - któraś z komórek zawiera null - bo błąd, który podałeś mówi czarno na białym: odwołanie do do pola obiektu o wartości null w linijce 182 pliku Obraz6_1.java w klasie Figury w metodzie Wszystkie_ruchy().

a na przyszłość naucz się obsługi debuggera i podobne problemy rozwiązuj sam.

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