OOP BlackJack Game (Deck erstellen)

Ich versuche, ein OOP-freundliches Java BlackJack-Spiel zu erstellen, um mein Wissen zu erweitern.

Ich bin gegen eine Wand gestoßen und weiß einfach nicht genug, um das Problem zu erkennen. Ich habe mich gefragt, ob jemand auf meine Probleme hinweisen kann.

Außerdem habe ich nach dem Durchsuchen relevanter Themen immer wieder festgestellt, dass die Verwendung von Aufzählungen von Vorteil ist. Wäre dies für Anfänger ratsam? Oder sollte ich vorerst bei String-Arrays bleiben?

Vielen Dank.

mein Code:

public class BlackJack{

BlackJack() {
    Deck deck =  new Deck();
    deck.createDeck();
    System.out.println(deck.deckList);
}

public static void main(String[] args) {

    new BlackJack();


   }
}


public class Card{

private String valueCard;
private String suitCard;

public Card(String value, String suit) {
    this.valueCard = value;
    this.suitCard = suit;
}

public String getValue() {
    return valueCard;
}
public String getSuit() {
    return suitCard;
  }
}

import java.util.ArrayList;


public class Deck {

ArrayList<Card> deckList = new ArrayList<Card>();

String[] value = {"Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",
        "Jack", "Queen", "King", "Ace"};
String[] suit = {"Hearts", "Clubs", "Spades", "Diamonds"};


Deck() {

    deckList = new ArrayList<Card>();

}

public void createDeck() {
    for (int i = 0; i < value.length; i++) {
        for (int x = 0; x < suit.length; x++) {
            Card card = new Card(value[i], suit[x]);
            deckList.add(card);

          }
      }
  }
}

edit: im moment ist mein druckergebnis: [card @ addbf1, card @ 42e816, card @ 9304b1, ... etc] Was bedeutet das?

Vielen Dank für Ihre Zeit.

EDIT: Wer auch in Zukunft eine Antwort darauf braucht:

hinzugefügt:

    @Override
public String toString(){
    return valueCard + " of " + suitCard;
}
 }  

zu meiner Kartenklasse und dann in der Deckklasse verwendet:

import java.util.ArrayList;


public class Deck {

ArrayList<Card> deckList = new ArrayList<Card>();

String[] value = {"Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",
        "Jack", "Queen", "King", "Ace"};
String[] suit = {"Hearts", "Clubs", "Spades", "Diamonds"};


Deck() {

    deckList = new ArrayList<Card>();

}

public void createDeck() {
    for (int i = 0; i < value.length; i++) {
        for (int x = 0; x < suit.length; x++) {
            Card card = new Card(value[i], suit[x]);
            deckList.add(card);
            card.toString();
        }
    }
}
}

ENUM: öffentliche Klasse CardEnum {

public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX,
    SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE }

public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }


}


public class Card{

private CardEnum.Rank rank;
private CardEnum.Suit suit;

public Card(CardEnum.Rank rank, CardEnum.Suit suit) {
    this.rank = rank;
    this.suit = suit;
}

public Rank getRank() {
    return rank;
}
public Suit getSuit() {
    return suit;
}

@Override
public String toString(){
    return rank + " of " + suit;
}
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage