La création d'une instance d'un tableau d'objets de la classe en Java

Je suis nouveau sur Java, et j'obtiens une erreur dans ma fonction principale lorsque j'essaie de créer une instance d'un DeckofCards classe. Le DeckofCards classe qui est censé être privé de tableau de "Cartes" objets. Je pense que ma question est quelque chose dans le DeckofCards classe, pour une raison quelconque, il n'est pas un tableau, je pense? Peut-être que j'ai créé il de mal?

Les erreurs dans ma main sont
'(' ou '[' attend
et
tableau requis mais DeckofCards trouvé

Voici ma fonction principale:

public static void main(String[] args) {

        Card myCard = new Card(13,1);
        System.out.println(myCard.getSuit());
        System.out.println(myCard);
        DeckofCards myDeck = new DeckofCards;  //error here
        for(int i=0; i<53; i++) {
            System.out.println(myDeck[i]); //second error here
        }
    }

Voici mon DeckofCards classe:

public class DeckofCards {

    private Card[] deck = new Card[52];

    public DeckofCards(){
        int i = 0;

            for(int s = 1; s<5; s++){
                for(int r = 1; r<14; r++){
            deck[i].rank = r;
            deck[i].suit = s;
            i++;

    }
}
    }
}

Si quelqu'un peut me dire si je suis pas certains de la syntaxe ou de quelque chose, ce serait sympa! Merci.

  • "pour une raison quelconque, il n'est pas un tableau, je pense" - eh Bien, vous serez frappé le clou sur la tête. Utiliser des méthodes pour interagir avec le Card tableau dans votre deck classe.
  • Au lieu de new DeckofCards utilisation new DeckofCards()
  • Remarque: pour construire un objet (ou réellement définir ses paramètres), vous devez appeler un constructeur. Un constructeur est une méthode de classe (même si vous n'écrivez pas votre propre constructeur explicitement, Java fournir un constructeur par défaut de la classe.) Maintenant, vous avez réellement écrit votre constructeur (public DeckOfCards()) dans votre classe, et à voir: c'est une méthode. Pour appeler une méthode en Java, vous devez taper methodName(arguments). Les parenthèses sont obligatoires et les arguments ne sont pas (par exemple, le constructeur que vous avez écrit ne prend pas d'arguments).
  • Quelqu'un peut m'expliquer pourquoi le Système.out.println(myDeck[i]) renvoie une erreur? Système.out.println(myCard) retourne la carte ("As de Pique" par exemple) et n'est pas myDeck[i] juste une carte?
InformationsquelleAutor singmotor | 2014-04-20