0

私のデッキは Card オブジェクトの配列を作成し、更新されたことを正常に出力します。プログラムを実装するための 3 番目のクラスを作成したいと思います。デッキ オブジェクトを作成し、プレイヤーに何枚のカードが必要かを尋ね、ランダムに配ります。一番下の PlayingTable クラスでは、デッキのインスタンスを作成し、それをスキャンして、デッキ内のすべての情報を作成しようとしています。配列ではないため、デッキ オブジェクトをスキャンできませんと表示されます。ここからどこに行けばよいかわかりません....

2 つのクラスのコードは次のとおりです。

パブリック クラス カード

{

    //Instance properties//
    private String cardNum; 
    private String cardSuit;

    //Instance Methods // 
    //Constructor, create an instance of card
    public Card( String num , String suit ) 
    {
        System.out.println( "Creating a card.");
        cardNum = num ;
        cardSuit = suit;    
    }       
     public void display()
     { 
    System.out.println("This card is a" + " "+ cardNum + cardSuit);
    }

}

公開クラス デッキ

{ // インスタンス プロパティ //

 //Number of cards in a deck
 public static int numCards = 52; 
 private static Card [ ] deck= new Card [numCards];
 private static String [ ] cardValue = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" } ;
 private static String [ ] cardSuit = { " of Hearts" , " of Spades", " of Clubs", " of Diamonds" };

 //Instance methods and Constructor//
 /*public void Deck ( )
 {


 }*/

 public static void fillDeck ( )
 {

    int eachCard = 0 ;

    for ( int i = 0; i < cardValue.length ; i++ )
    {
     for ( int j = 0 ; j < cardSuit.length ; j++ )
        {

         deck[eachCard++] = new Card ( cardValue [i] , cardSuit [j] );

        }
     } 
 }

public static void getDeck ()
{
    for ( int i = 0; i < numCards ; i++ )
   {
    fillDeck();
    //System.out.println( " This is card" + i + " " + " of the deck" );
    deck[i].display();
    }
}   
public static void main (String [] args ) 
{ 
    getDeck();
}

}

public class PlayingTable { 静的デッキ ディーラーデッキ = 新しいデッキ();

    public static void main ( String [] args )
    {  

        for ( int i = 0 ; i < 52; i++)
        {
              System.out.println ( dealersDeck[i].getDeck());
        }

    }

}

4

2 に答える 2

0

numCards -1 のサイズに初期化された Card オブジェクトを保持する配列を作成します。

private static Card [ ] deck = new Card [numCards-1];

しかし、オブジェクトを入れたことがないので、呼び出すときに

deck[i].display();

存在しないもので表示メソッドを呼び出しています。配列にデータを入力するメソッド(makeDeck())がありますが、決して呼び出しません。

エンティティ クラス ファイル内に main() があると便利ですが、コード内のエラーを隠すこともできます。別のクラスでテストを行うことをお勧めします。

于 2012-11-11T01:52:04.463 に答える