First you have an architectural issue with your classes. You moved the property deck
inside your class Card
. But of couse it is a property of the card deck and thus has to be inside class DeckOfCards
. The initialization loop should then not be in the constructor of Card
but of your deck class. Moreover, the deck is an array of int
at the moment but should be an array of Card
s.
Second, inside method Deal
you should refer to suits
as Card.suits
and make this member static final. Same for ranks
.
And last, please stick to naming conventions. Method names are always starting with a lower case letter, i.e. shuffle
instead of Shuffle
.