Prima di tutto devo dire che concordo con andbin sul fatto che un gioco potrebbe essere un po' troppo complicato per ora (fra l'altro tra i vari giochi di carte il poker non è certo il più semplice), se vuoi continuare su questa strada è facile che ti bloccherai spesso per dubbi più elementari ...

Originariamente inviata da
gennysennin
Tpo ora, so benissimo che la classe MazzoCarte non è in realtà giusta come sottoclasse in quanto un MazzoDiCarte NON è una Carta, però mi ritroverei a fare tutto in una sola classe poi.
Bene che hai capito che MazzoCarte NON deve estendere Carta, ma non è assolutamente vero che poi devi fare tutto in una sola classe !
Puoi usare tutte le classi che vuoi, non c'è alcun bisogno di usare l'ereditarietà per collegare le classi tra di loro, lo puoi/dovresti fare solo in alcune circostanze, e per ora non ce n'è alcun bisogno!
Per quanto riguarda la classe Carta: ok, hai tolto alcune cose inutili, ma ce ne sono ancora tante altre! Ricorda che una classe dovrebbe rappresentare il più fedelmente possibile ciò che vuoi modellare, nel tuo caso per ora una carta è solo un oggetto con un certo seme e un certo valore (poi aggiungerai altro magari). Quindi non deve assolutamente conoscere il valore di tutte le carte (arrayCarte) e di tutti i semi (arraySemi), queste informazioni le userai in una classe a parte !
Il costruttore della classe Carta non deve avere quel ciclo all'interno, è opportuno passare alla carta solo il proprio seme e il proprio valore, quindi un buon modo per scrivere la classe Carta per ora potrebbe essere questo:
codice:
public class Carta
{
private char valore,seme;
public Carta(char s,char v)
{
seme=s;
valore=v;
}
public char getSeme()
{
return seme;
}
public char getValore()
{
return valore;
}
// Override del metodo toString
public String toString()
{
return valore+seme;
}
}
Va benissimo mantenere valore e seme campi privati e accedervi con i metodi get, semplicemente dovrai ripensare la cosa qualora volessi estendere la classe Carta, cosa che per ora NON devi fare 
Poi crei una classe esterna, lascia stare per ora una classe per il Mazzo (ci ripenserai in seguito se serve), crei ad esempio una classe TestMazzo e all'interno inizializzi e riempi un array di 52 carte in questo modo:
codice:
public class TestMazzo
{
char[] arrayCarte=new char[13],arraySemi=new char[4];
Carta[] mazzo=new Carta[52];
public TestMazzo()
{
arrayCarte=new char[]{'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
arraySemi=new char[]{'h','d','s','c'};
// Una semplice riga per creare il mazzo
for(int i=0;i<13;i++)for(int j=0;j<4;j++)mazzo[4*i+j]=new Carta(arrayCarte[i],arraySemi[j]);
// Stampi a video il mazzo
for(int i=0;i<52;i++)System.out.print(mazzo[i]+" ");
}
public static void main(String[] a)
{
new TestMazzo();
}
}
Prova a compilare ed eseguire TestMazzo e vedrai che così crei le 52 carte richieste.
Non è molto più semplice di quanto stavi provando a fare?