2016-04-06 17 views
0

私は相続に1つの問題があります。私は2つのクラス、(CreateAnArray、TheGame)と今 - 私は 'CreateAnArray'クラスで作成された2次元配列を持って、私は 'TheGame'クラスでそれを使用したいが、それをしようとするたびに、私は 'ヌル'です。クラス間の2次元配列| Java

public class TheGame extends CreateAnArray{ 

public void insert(String k){ 
    for(int i=0;i<arrayOX.length;i++){ 

     for(int j=0;j<arrayOX.length;j++){ 
      if(arrayOX[i][j] == k && (arrayOX[i][j] != "x" && arrayOX[i][j] != "y")) 
       arrayOX[i][j]=k; 
      System.out.println(arrayOX[i][j]); 
     } 
    } 
} 

そして第二のクラス:

public class CreateAnArray { 
public String[][] arrayOX = new String[3][3]; 

public void create(){ 
    int k=1; 
    for(int i=0;i<arrayOX.length;i++){ 
     for(int j=0;j<arrayOX.length;j++){ 
      arrayOX[i][j]=Integer.toString(k++); 
     } 
    } 
} 

public void show(){ 
    for(int i=0;i<arrayOX.length;i++){ 
     for(int j=0;j<arrayOX.length;j++){ 
      System.out.print(arrayOX[i][j]); 
     } 
     System.out.println(); 
    } 
} 

私はオブジェクトを作成し、返すメソッドを試してみたが、何も私が何をすべき、役立ちますか?

+0

何かをする前に、Gameクラスのコンストラクタを呼び出して、super.create();メソッドを呼び出す必要があります。配列のセルがnullのため、nullを取る。 – GOXR3PLUS

答えて

0

これを行わないでください。あなたのファーストクラスは正常に動作していますか? arrayOXが必要な場合は、その配列をファーストクラスに戻す関数を用意してください。ここでクラスを拡張しないでください。

public String[] create(){ 
    String[] arrayOX = new String[3][3]; 

    int k=1; 
    for(int i=0;i<arrayOX.length;i++){ 
     for(int j=0;j<arrayOX.length;j++){ 
      arrayOX[i][j]=Integer.toString(k++); 
     } 
    } 

    return arrayOX; 
} 

この関数を呼び出して、他のクラスのarrayOXを取得します。

+0

ああ、私の悪い、ありがとうございます:-) – codesyntax

+0

この回答が参考になった場合は、お気軽にお申し付けください! – ifly6