Kopiowanie tablicy, a tak naprawdę jakiś kluczowy brak w wiedzy

0

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;
	}

}
1

tabKopia jest nullem. Nie inicjalizujesz jej w żaden sposób.

0

Oczywiście, dziękuję.

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