2012-02-24 10 views
0

私はクラスSquareを持っており、それに配列を使用しようとしていますboard。ここに私のコードは次のとおりです。Javaで配列を使用する際の問題?

public class Square{ 
    public int pcolor; 
    public int contains; 
    public int xPos; 
    public int yPos; 
    Square(int xp,int yp,int pc,int cont){ 
     xPos=xp; 
     yPos=yp; 
     contains=cont; 
     pcolor=pc; 
    } 
}; 
Square[] board = new Square[64]; 
board[0].xPos=0; 

これは私board[0].xpos=0;unexpected token: [を提供します。誰も私がこれを解決するのを助けることができる?


EDIT:

OK、私はメソッド内board[0].xpos=0;移動。今それは私にNullPointerExceptionを与える。私は何をしますか?

+3

あなたのコードを見せてください。 – mcfinnigan

+1

xPosは表示されません。 – m0skit0

+0

さらにコードを投稿してください。これは構文エラーのようです。 –

答えて

3

メソッドまたは静的スコープ内にステートメントを作成しようとしていません。

board[0].xPos = 0;というステートメントは、おそらくメソッド内にあるはずです。

ます。また、このコードはうまくコンパイル冗長};

を持っているように見える:

public class Square{ 
    public int pcolor; 
    public int contains; 
    public int xPos; 
    public int yPos; 
    Square(int xp,int yp,int pc,int cont){ 
     xPos=xp; 
     yPos=yp; 
     contains=cont; 
     pcolor=pc; 
    } 
    Square[] board = new Square[64]; 
} 

boardの要素を初期化し、[アクセス]するには - あなたはメソッドまたはでそれを行う必要がありますコンストラクタboard

+0

私は本当にこのコードが同じファイルにないことを願っています。 -_- – jn1kk

+0

正方形の[Square]ボードが正方形の中にある理由 – user1188752

+0

@ user1188752:実際に何をしようとしているのか分かりません。それはコンパイルしているコードの単なるサンプルです。あなたが達成しようとしていることについての詳細な情報がないと、私は推測できませんでした。 – amit

1

これを正しく行うと、まだオブジェクトを作成していないため、NullPointerExceptionが得られます。私の推測では、構文エラーがあります。

+0

NPEは実行時エラーです。 – amit

+0

"オブジェクトはまだ作成されていません"という意味は? – user1188752

+0

@amit私は彼がメソッドの外にステートメントを置いている可能性があるので、シンタックスを前処理するIDEを使用していると思っています – jn1kk

0

すべてSquare sがnullであり、あなたはnullオブジェクトのフィールドにアクセスしようとしている...

あなたはで配列を初期化することができます:私は「、また

for(int i = 0; i < board.length; i++) 
    board[i] = new Square(...something_here...); 

あなたが何をしようとしているのかよく分かりませんが、Square[][]の使用を検討する必要があります。

関連する問題