title: Creating Deck Of Cards For Blackjack simulator in Java
body: <p>I am creating a blackjack simulator to better learn java.  I recently completed the free course available at udacity which is an excellent resource, <a href="https://www.udacity.com/course/cs046" rel="nofollow">https://www.udacity.com/course/cs046</a>.</p>
  
  <p>So far, I have created a deck of cards and printed it successfully.  It consists of 3 classes, Blackjack which holds the main method, deck which creates the deck and card which creates the cards.</p>
  
  <p>Is there a better way to do this?  One thing that jumps out at me is how long the deck constructor is.  In all the examples I have seen, constructors are much shorter.</p>
  
  <p>Also, I am not making any use of the getter methods in card, so they should either be deleted or used.  I am leaning towards deleting them since no other method is going to call these methods once the deck is created.</p>
  
  <p>I have not googled this since I don't want to have the answers for future methods given to me.  I am not the first person to have this idea!</p>
  
  <p>Thank you for your feedback.</p>
  
  <p>Card.java</p>
  
  <pre><code>package blackjack;
  
  public class Card {
      private final String name;
      private final String suit;
      private final int value;
  
      public Card(String name, String suit, int value){
          this.name = name;
          this.suit = suit;
          this.value = value;
      }
  
      public String getName(){
          return name;
      }
  
      public String getSuit() {
          return suit;
      }
  
      public int getValue() {
          return value;
      }
  
      public String toString(){
          return (this.name + " of " + this.suit + " " + this.value);
      }
  }
  </code></pre>
  
  <p>Deck.java</p>
  
  <pre><code>package blackjack;
  
  import java.util.*;
  
  public class Deck {
  
      private static int numSuits = 4;
      private static int numRanks = 13;
      private static int numCards = numSuits * numRanks;
  
      private Card[] cards;
  
      public Deck() {
  
          String suit = null;
          String name = null;        
          int value = 0;
          cards = new Card[numCards];
  
          int arrayIndex=0;
  
          for (int i=1; i&lt;=numSuits; i++){
              for (int j=1; j &lt;= numRanks; j++){
                  switch (i){
                      case 1: suit = "Clubs"; break;
                      case 2: suit = "Diamonds"; break;
                      case 3: suit = "Hearts";  break;
                      case 4: suit = "Spades"; break;
                  }
  
                  switch (j){
                      case 1: name = "Ace"; value = 0; break;
                      case 2: name = "Two"; value = 2; break;
                      case 3: name = "Three"; value = 3; break;
                      case 4: name = "Four"; value =4; break;
                      case 5: name = "Five"; value = 5; break;                             
                      case 6: name = "Six"; value = 6; break;
                      case 7: name = "Seven"; value = 7; break;
                      case 8: name = "Eight"; value = 8; break;
                      case 9: name = "Nine"; value = 9; break;
                      case 10: name = "Ten"; value = 10; break;                           
                      case 11: name = "Jack"; value = 10; break;
                      case 12: name = "Queen"; value = 10; break;
                      case 13: name = "King"; value = 10; break;                           
                  }
  
                  Card card = new Card (name, suit, value);  
                  cards[arrayIndex] = card; 
                  arrayIndex++;
              }
          }
      }
  
      public void printDeck(){
          System.out.println(Arrays.toString(cards));
      }
  
  }
  </code></pre>
  
  <p>Blackjack.java</p>
  
  <pre><code>package blackjack;
  
  import java.util.*;
  
  /**
   *
   * @author
   */
  public class Blackjack {
  
      /**
       * @param args the command line arguments
       */
      public static void main(String[] args) {
          Deck deck = new Deck();
          deck.printDeck();
      }
  }
  </code></pre>