Grazie mille!!! Funziona!!!

In ogni caso:
Si la gerarchia mi è stata detta di farla così. La classe A modella l'entità attributo ed è la superclasse e contiene i metodi indice e nome, B estende la classe A e rappresenta un attributo discreto quindi eredita i metodi nome e indice e contiene in più metodi valore e lunghezza valore, la classe C contiene le tuple, ha una matrice x e ha i metodi dimensione riga,dimensione contenitore che contiene le tuple, il main.
Per quanto riguarda (i,j), i accede alle righe, mentre j deve accedere alle colonne della tabella.
Ci devo salvare dentro nella colonna Frutta quindi alla colonna 0 riga 0 "Mela" nella colonna 0 riga 1 "Arancia" ecc.. poi nella colonna dei Colori colonna 1 riga 0 "Giallo", "Rosso" ecc..

Comunque ho rivisto il codice e ho corretto degli errori e funziona sono riuscito a salvare gli attributi nella tabella e a stamparlo a schermo, lo reinserisco qui:

codice:
x[0][0]=new String(contenitore[0].getName());/*Inserisco "Frutta" all'inizio della matrice*/
x[0][1]=new String(contenitore[1].getName());/*Inserisco "Colore" all'inizio della matrice*/
			for(int i=1;i<x.length;i++){
				for(int j=0;j<x[0].length;j++){
					int rand=(int)(Math.random()*(((b)contenitore[j]).getNumber())); /*stampo in modo casuale i colori e i frutti*/
					x[i][j]=new String(((b)contenitore[j]).getValue(rand));
					
					}
Per stampare la stringa ho fatto così:

codice:
public String toString(){
		String s=new String();
		
		for(int i=0;i<x.length;i++){
			for(int j=0;j<x[0].length;j++){
				s=s+" "+x[i][j].toString();
			}
			s=s+"\n";
		}
		return s;
		
	}
cosa ne pensi? Funziona però mi sembra incasinato o sbaglio , c'è qualcosa che posso semplificare secondo te?