2016-07-28 4 views
-3

Eclipseは、コードの最後の行に "式の型は配列型でなければなりませんが、私は2D配列用に作成したオブジェクトのクラスです"私は以下のとおりです。特にここに - > a [行]私は2D配列を単純に印刷しようとしています。しかし、私はエラーが発生しています

これは私のJavaクラスで作業している大きなプロジェクトのほんの一部です。あなたはすべてそれに精通しているかもしれません、私は2D配列を使用してシアター座席図を印刷し実装する必要があります。私は価格で検索するためのメソッドを書く必要があります。座席などで検索しています。今は2D配列を初期化しようとしていて、いくつかの値を入れてから印刷します。どんな助けでも大歓迎です。

public class Theater { 
//int[][] x = new int[9][10]; 
int y[][]; 

    public Theater(){ 
     //Initialize array 
     for (int row = 0; row < 3; row++) 
      for (int column = 0; column < 10; column++) 
       y[row][column] = 10; 
    } 

    public static void main(String[] args){ 
     Theater a = new Theater(); 

     for(int i = 0; i < 3; i++) 
      for (int row = 0; row < 9; row++) 
       for (int column = 0; column < 10; column++) 
        System.out.println(a[row][column]); 
+0

'a'は配列ではなく、単に' Theater'型のObjectです。 – Kon

+0

'y'も初期化してください。まだ 'null'でも' y'のインデックス値に代入することはできません。 – 4castle

+0

['Arrays.deepToString(Object [])'](https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#deepToString-java.lang.Object:A- )あなたが欲しいものです。そして、配列 'y'(つまり、' a.y')にアクセスする必要があります。 –

答えて

0

[]オペレータアレイである式に適用する必要があります。 Theaterは配列ではないので、コンパイル時にエラーが発生します。書き込もうとしたときにそれ以外の場合、これはNullPointerExceptionになります

public Theater(){ 
    this.y = new int[9][10]; 
    ... 

を:

... 
System.out.println(a.y[row][column]); 

はまた、あなたがそれを使用する前にy配列を作成する必要があります:あなたは、おそらくTheaterインスタンスのyフィールドにアクセスしたいです配列に書き込む(y[row][column] = 10;)。

+0

ありがとうございます。一度私はyの配列を初期化し、a.yの代わりにそれを印刷することができます。今私はそれを10回だけループする方法を理解しようとしています。しかしそれはもう一つの質問です。再度、感謝します :-) –

関連する問題