我不明白为什么 java 中的这段代码需要初始化

I do not why initialization is needed in this code in java

我不知道为什么那里需要 currentCard 的初始化(我在我的代码中注释的地方)。 此代码中真的需要该语句吗?

  public class Card   {
  private String face;
  private String suit;

  public Card( String cardFace, String cardSuit )
  {
    face = cardFace;
    suit = cardSuit;
  }

  public String toString()
  {
    return face + " of " + suit;
  }
}

============================================= ==================

import java.util.Random;

public class DeckOfCards
{
  private Card[] deck;
  private int currentCard;
  private static final int NUMBER_OF_CARDS = 52;
  private static final Random randomNumbers = new Random();

  public DeckOfCards()
  {
    String[] faces = {"Ace", "Deuce", "Three", "Four", 
        "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", 
        "Queen", "King" };
    String[] suits = {"Hearts", "Diamonds", "Clubs", "Spades"};

    deck = new Card[NUMBER_OF_CARDS];
    currentCard = 0;

    for( int count = 0; count < deck.length; count++)
      deck[ count ] = 
        new Card( faces[ count % 13 ], suits[ count / 13 ] );
  }
  public void shuffle()
  {
    currentCard = 0; // I do not know why initialization is needed

    for( int first = 0; first < deck.length; first++ )
    {
      int second = randomNumbers.nextInt( NUMBER_OF_CARDS );

      Card temp = deck[ first ];
      deck[ first ] = deck[ second ];
      deck[ second ] = temp;
    }
  }
  public Card dealCard()
  {
    if( currentCard < deck.length )
      return deck[ currentCard++ ];
    else
      return null;
  } 
}


public class DeckOfCardsTest
{
  public static void main( String[] args )
  { 
    DeckOfCards myDeckOfCards = new DeckOfCards();
    myDeckOfCards.shuffle();

    for( int i = 1; i <= 52; i++)
    {
      System.out.printf("%-19s", myDeckOfCards.dealCard() );

      if( i % 4 ==0 )
        System.out.println();
    }
  }    
}
  • currentCard 说下一张要发的牌(见 dealCard() 方法)

  • shuffle() 做两件事:1) 洗牌,2) 重置 currentCard 以便下一张要发的牌是牌 0.

(洗牌本身不需要 currentCard = 0!)