2017-10-24 2 views
-1

2 차원 배열을 만들고 배열의 한 차원 만 초기화하면 모든 것이 작동하지만 다른 클래스에서 호출하면 아무 효과가 없습니다. 왜?다른 클래스의 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][]; 

}} 

이 코드는 작동하지만 클래스 매트릭스를 확장하면 하나의 크기 (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][]; 

매트릭스 클래스

public class Matrix { 

    public static int [][] Matrix; 

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

} 
+1

"아무것도 작동하지 않습니다"는 유용한 문이 아니기 때문에 나는이 질문을 downvoted했습니다. 문제를 명확히하기 위해 질문을 편집하십시오.이 하향 설명은 취소 될 수 있습니다. –

+0

변수의 이름을 변경하십시오 public static int [] [] 행렬을 포함하는 클래스의 이름 외의 다른 행렬 – Noixes

+0

".. 하나의 크기 만 저장할 수 없습니다 .."왜 안 되니? 오류가 있습니까? 오류가 무엇입니까? – 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