2016-10-07 7 views
0

Javaでブラックジャックプログラムを作成しています。内部クラスを使用する方法を学ぶときに問題が発生しました。私は内クラスCardのメソッドを呼び出すためにBlackjackオブジェクトをインスタンス化しようとしていますが、プログラムはBlackjackクラスを見つけることができません。どのように私はこれを修正については行くことができます:内部でクラスをインスタンス化できません

import java.util.Scanner; 
import java.util.Deque; 
import java.util.ArrayDeque; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.Iterator; 

public class Blackjack { 

    int playerWins = 0, dealerWins = 0; 

    // Inner Class - private for encapsulation 
    private class Card { 
     private int suit; 
     private int value; 

     private Card(int suit, int value) { 
      this.suit = suit; 
      this.value = value; 
     } 

     private int getValue() { 
      return value; 
     } 

     private int getSuit() { 
      return suit; 
     } 
    } 

    public static void main(String[] args) { 
     Deque<Card> deck = new ArrayDeque<Card>(); 
     Deque<Card> player = new ArrayDeque<Card>(); 
     Deque<Card> dealer = new ArrayDeque<Card>(); 
     Blackjack game = new Blackjack(); 
     game.createDeck(deck); // Create deck 
     game.shuffle(deck);// Shuffle 
     game.play(deck,player,dealer);// Deal 
    } 
    ... 

コンパイルしようとしたとき、私は取得していますエラー:

Exception in thread "main" java.lang.ClassNotFoundException: Blackjack 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:264) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122) 
+0

あなたは 'ブラックジャック'クラスのために '}'を閉じていないようです。 – Bathsheba

+0

plsよりリアルなコードを表示します。 incl。インポートとクラスにはメインメソッドが含まれています。 – dit

+1

クラスを名前付きパッケージに移動しましたが、新しい実行構成を作成しませんでしたか? –

答えて

0

私はcreateDeck、シャッフル、遊びやクラスがcorrecttly作品メソッドを実装しています。ここで コード:

import java.util.Deque; 
import java.util.ArrayDeque; 

public class Blackjack { 

    int playerWins = 0, dealerWins = 0; 

    private void createDeck(Deque<Card> deck) { 
     System.out.println("createDeck"); 
    } 

    private void shuffle(Deque<Card> deck) { 
     System.out.println("shuffle"); 
    } 

    private void play(Deque<Card> deck, Deque<Card> player, Deque<Card> dealer) { 
     System.out.println("play"); 
    } 

    // Inner Class - private for encapsulation 
    private class Card { 

     private int suit; 
     private int value; 

     private Card(int suit, int value) { 
      this.suit = suit; 
      this.value = value; 
     } 

     private int getValue() { 
      return value; 
     } 

     private int getSuit() { 
      return suit; 
     } 
    } 

    public static void main(String[] args) { 
     Deque<Card> deck = new ArrayDeque<Card>(); 
     Deque<Card> player = new ArrayDeque<Card>(); 
     Deque<Card> dealer = new ArrayDeque<Card>(); 
     Blackjack game = new Blackjack(); 
     game.createDeck(deck); 
     game.shuffle(deck); 
     game.play(deck, player, dealer); 
    } 

} 

EDIT:

があなたのエラーを見ると、多分ブラックジャッククラスのフォルダがクラスパスにありません。あなたが自分の含むフォルダからクラスを起動する場合、 "。"を設定する必要があります。クラスパス内のフォルダ。

関連する問題