Hej,
Próbuję napisać program kopiujący tablicę i wyskakuje błąd, który sugeruje mi, że nie rozumiem jakiegoś kluczowego aspektu. Podejrzewam, że problem leży w moim pojmowaniu zachowania zmiennych podczas dziedziczenia. Poprosiłbym o wskazanie co jest nie tak. W komentarzach piszę co moim zdaniem powinno się dziać :)
public class App {
public static void main(String[] args) {
TablicaInt tab1 = new TablicaInt(5, 5); //tab1 przechowuje tablice tab
TablicaIntKopia tab2 = new TablicaIntKopia(5, 5); //tab2 przechowuje tablice tab
tab2.kopiuj(tab1.tab); //tab z tab1 powinna by przepisana do tab z tab2, ale wyskakuje bląd java.lang.NullPointerException
}
}
public class TablicaInt {
int[] tab;
int liczbaElementów;
int maksWartosc;
public TablicaInt(int liczbaElementów, int maksWartosc){
this.liczbaElementów = liczbaElementów;
this.maksWartosc = maksWartosc;
tab = new int[liczbaElementów];
Random generator = new Random();
for(int i=0;i<tab.length;i++){
tab[i] = generator.nextInt(maksWartosc) + 1;
}
}
}
public class TablicaIntKopia extends TablicaInt {
int[] tabKopia;
public TablicaIntKopia(int liczbaElementów, int maksWartosc) {
super(liczbaElementów, maksWartosc);
}
public int[] kopiuj(int[] tab) {
for (int i = 0; i < maksWartosc; i++) {
tabKopia[i] = tab[i];
}
return tabKopia;
}
}