2015-10-20 3 views
-2

Je suis coincé en faisant mes devoirs et j'ai du mal à comprendre ce qu'il faut faire ensuite. Donc, mes instructions sont les suivantes:Dans le constructeur par défaut initialiser les attributs

  1. Créer une nouvelle classe appelée Card. La case à cocher Constructors from superclass créera un stub de constructeur dans le code.

  2. Créer un type énumératif dans un nouveau fichier source appelé Suit avec les valeurs NONE, CLUBS, HEARTS, SPADES, DIAMONDS.

  3. Créer un type énumératif dans un nouveau fichier source dans le même paquet que la Card classe, appelée Rank avec les valeurs JOKER, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE.

  4. Dans la classe Card,
    A) Créer un attribut de classe (champ) appelé rank de type Rank.
    B) Créez un attribut de classe (champ) appelé suit de type Suit.
    C) Créer des getters et setters pour ces champs. Rendre les setters privés, puisque nous voulons seulement que le constructeur place la carte Suit et Rank (nous ne voudrions pas qu'un programmeur ou un utilisateur mette plus d'un ACE de CLUBS par exemple).

  5. Créez un constructeur qui accepte un Suit et un Rank et utilisez ces valeurs pour définir les attributs. Dans le constructeur par défaut, initialisez suit et rank. Utilisez le constructeur this pour appeler le constructeur créé à l'étape précédente et initialiser le rang et la combinaison avec la valeur de votre choix (par exemple: Rank.ACE, Suit.CLUBS).

  6. Dans la méthode principale de la classe, construisez un Card par défaut pour démontrer l'initialisation du constructeur par défaut. Construire également quelques cartes supplémentaires en utilisant les constructeurs Suit et Rank. Utilisez les variables locales pour contenir les objets.

  7. En utilisant la méthode toString() à partir de types dénombrées, imprimez la Suit et Rank de chaque Card créé.

  8. Créez une classe Deck qui contient un champ contenant un tableau de cinquante-quatre cartes (Confinement).

  9. Créer un constructeur sur la classe Deck qui initialise le tableau de cartes avec la plate-forme standard et deux jokers, en utilisant for boucles qui itérer sur les Suit et Rank valeurs et définissez les membres du groupe avec le constructeur Card approprié. Rappelez-vous que les deux Jokers existent seulement en tant que combinaisons NONE et que seuls les Jokers utilisent la combinaison NONE. Il existe de nombreuses solutions possibles pour créer seulement deux jokers. J'ai utilisé un itérateur, les ai laissés hors de la boucle et les ai ajoutés au début, individuellement. Utilisez une instruction if pour exclure les jokers dans une boucle for each et ajoutez-les avant ou après.

  10. Créer une méthode toString() dans la classe Deck, en utilisant une autre boucle for pour imprimer tous les Card s dans le tableau en appelant la méthode toString() sur chaque carte. Cette méthode "demande" au Card d'imprimer son rang et sa couleur en appelant uniquement toString() sur l'objet Card. Il ne devrait pas y avoir de référence à Rank ou Suit n'importe où dans cette méthode. Laissez Card méthode toString() faire le travail (délégation).

  11. Créez une méthode main dans la classe Deck qui crée un Deck. Imprimez ensuite le jeu en utilisant System.out.println(). Cela appellera Deck méthode toString(), qui appellera toString() sur chaque Card, l'impression du pont entier.

public class Card { 

    //Default Constructor 
    Card(){ 
    } 

    //Create a class attribute (field) called rank of type Rank. 
    Rank rank; 
    //Create a class attribute (field) called rank of type Suit 
    Suit suit; 
    //Create an Enumerated Type in a new source file called Suit 
    public enum Suit{ 
    NONE, CLUBS, HEARTS, SPADES, DIAMONDS 
    } 
    //Create an Enumerated Type in a new source file called Rank 
    public enum Rank{ 
    JOKER, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK,QUEEN,KING, ACE   
    } 

    //Getters & Setters for Rank/Suit 
//Make the setters private, since we only want the constructor to set the card Suit and Rank 
public Rank getRank() { 
return rank; 
} 
private void setRank(Rank rank) { 
this.rank = rank; 
} 
public Suit getSuit() { 
return suit; 
} 
private void setSuit(Suit suit) { 
this.suit = suit; 
} 

//Create a constructor that accepts a Suit and a Rank and use those values to set the attributes. 
Card (Rank Rank, Suit Suit){ 
suit = Suit; 
rank = Rank; 
} 






    public static void main(String[] args) { 

    } 



    } 
+1

SO ne fonctionne pas de cette façon. Ne vous attendez pas à ce que vous puissiez simplement copier et coller votre devoir et votre code; et que nous avons passé notre temps libre à lire tout cela pour comprendre où vous êtes exactement coincé; quel est votre problème ... et ainsi de suite. Pour être franc: oubliez ça. Décrivez ce que vous avez essayé jusqu'ici et où vous êtes exactement coincé. – GhostCat

+0

Ok, donc je pensais avoir terminé à l'étape 4/5 correctement. J'ai juste besoin d'aide pour comprendre si j'ai bien fait l'étape 5 et quelqu'un pour expliquer ce que l'étape 6 veut que je fasse? Je viens de poster tout ce qui se passe pour donner une meilleure idée de l'ensemble de ce qui doit être fait et des étapes précédentes que j'aurais pu raté. – BerlinUnited

+0

De quoi exactement les getters et les setters sont-ils nécessaires? – BerlinUnited

Répondre

0

Constructor est utilisé pour initialiser une instance d'un objet. Les setters sont utilisés pour définir les valeurs des variables et les getters le retournent. Jetez un oeil à l'exemple ci-dessous,

public class Test { 

    //private members of the instance 
    private String strVariable; 
    private int intVariable; 

    //constructor 
    //constructor sets the values of strVariable and intVariable when a Test object is intialized 
    public Test(String strVariable, String intVariable) { 

     this.strVariable = strVariable; 
     this.intVariable = intVariable; 
    } 

    //setter method for setStrVariable 
    //this will overwrite the value of setStrVariable that was assinged when the object was intilized 
    public void setStrVariable(String strVariable) { 

     this.strVariable = strVariable; 
    } 

    //getter for the setStrVariable 
    //this will return the value of setStrVariable 
    public String getStrVariable() { 

     return this.strVariable; 
    } 
}