2017-10-24 7 views
-1

2次元配列を作成して配列の1次元のみを初期化すると、すべてが機能しますが、別のクラスから呼び出すと何も動作しません。どうして?別のクラスの2次元配列を1次元配列のサイズだけで書く方法は?

import java.util.Scanner; 

public class Coursework { 
public static void main(String[] args) { 
    int verticalMatrix; // vertical size of Matrix 
    int horisontMatrix; // horisont 


    System.out.println("Enter vertical size of Matrix "); 
    Scanner sc = new Scanner(System.in); 
    verticalMatrix = sc.nextInt(); 

    int [][] matrix = new int [verticalMatrix][]; 

}} 

このコードは機能しますが、クラスの拡張を使用すると、1つのサイズ(verticalMatrix)しか保存できません。どのようにそれを修正する?

public class Coursework extends Matrix { 

public static void main(String[] args) { 
    int verticalMatrix; // vertical size of Matrix 
    int horisontMatrix; // horisont 


    System.out.println("Enter vertical size of Matrix "); 
    Scanner sc = new Scanner(System.in); 
    verticalMatrix = sc.nextInt(); 

    int [][] matrix = new int [verticalMatrix][]; 

Matrixクラス

public class Matrix { 

    public static int [][] Matrix; 

    public void getSize(){ 
      System.out.println("This method still epmty"); 
    } 

} 
+1

"何も効かない"というのは有用な問題文ではないので、私はこの質問をd​​ownvotedしています。あなたの問題を明確にするためにあなたの質問を編集してください、そして、このdownvoteは引っ込められます。 –

+0

変数の名前を変更しますpublic static int [] []マトリックスを含むクラスの名前以外のものに – Noixes

+0

"..私は1つのサイズしか保存できません。"間違いはありますか?エラーは何ですか? – moffeltje

答えて

0

あなたは自分のクラスのように呼ばれるあなたのint型の配列変数(Matrix)を持っています。おそらくエラーは発生しませんが、それは好ましくありません。

public class Matrix { 

    public static int [][] matrix; 

    public void Matrix(int verticalLength){ 
     this.matrix = new int[verticalLength][]; 
    } 

    public void getSize(){ 
      System.out.println("This method still epmty"); 
    } 
} 
+0

ありがとうございますが、メインクラスのメソッドMatrix(int verticallength)の使い方は?このメソッドと初期データを呼び出す方法は? – Bogdan

+0

Mainメソッドでユーザーからデータを取得するか、ヘルパークラスを作成して、Matrixクラスのコンストラクタを使用してオブジェクトを作成します。コンストラクタの使い方がわからない場合は、それを参照してください。 – moffeltje