자바 배열 선언방법에 대해 궁금합니다


ragged array을 선언(gradeHeights)한 다음 배열에 값을 입력(setData)하는 코드입니다.

int[][] gradeHeights = new int[5][];까지는 문제가 없는데 그 아래로 2차원 배열의 길이를 지정하면 계속해서 문제가 생깁니다.

import java.util.Scanner;

public class ManagerHeight {
    Scanner scan = new Scanner(System.in);

    public static void main(String[] args){
        ManagerHeight manager = new ManagerHeight();
        manager.setData(manager.gradeHeights);
    }
    int[][] gradeHeights = new int[5][];

    gradeHeights[0] = new int[5];
    gradeHeights[1] = new int[4];
    gradeHeights[2] = new int[4];
    gradeHeights[3] = new int[3];
    gradeHeights[4] = new int[5];

    public void setData(int[][] clss){
        for(int i=0; i<4; i++){
            for(int k=0; k<gradeHeights[i].length; k++){
                System.out.println(1+i+"반 "+(1+k)+"번 학생의 키는?");
                clss[i][k] = scan.nextInt();
            }
        }
    }
}
  • 2016년 06월 03일에 작성됨

조회수 246


1 답변


좋아요
2
싫어요
채택취소하기
gradeHeights[0] = new int[5];
gradeHeights[1] = new int[4];
gradeHeights[2] = new int[4];
gradeHeights[3] = new int[3];
gradeHeights[4] = new int[5];

이부분을 setData 메소드 안에 넣어보세요. new로 할당한 객체에 메소드바깥영역에서 접근하는건 불가능합니다.

  • 2016년 06월 04일에 작성됨
    안드로이드, 루비온레일즈

  • 감사합니다!    Snark   2016.6.5 16:37     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close