2014-11-15 4 views
0

완료해야 할 과제와 관련하여 질문이 있습니다. 기본적으로 각 객체에 좌표를 저장하고 배열에 저장해야합니다. 모두 별도의 배열이 필요한 여러 세트의 좌표가 있습니다.이 모든 배열은 다시 배열에 저장해야합니다.배열 배열에 객체 저장

이 3 개 클래스를 사용하여, 내가 할 노력하고있어 간단한 버전입니다 : 내가 인쇄 문에서 배열의 값을 변경할 때

package test2; 

import java.io.PrintStream; 
//import java.util.Scanner; 


public class Test { 

PrintStream out; 

Test(){ 
    out = new PrintStream(System.out); 
} 

    Coordinate[] row = new Coordinate[5]; 
    CoordinateRow[] main = new CoordinateRow[10]; 

    void start(){ 


    row[0] = new Coordinate(4, 9); 
    row[1] = new Coordinate(4, 1); 
    row[2] = new Coordinate(0, 4); 

    main[0] = new CoordinateRow(row); 


    row[0] = new Coordinate(5, 3); 
    row[1] = new Coordinate(7, 2); 
    row[2] = new Coordinate(4, 8); 


    main[1] = new CoordinateRow(row); 

    out.println(main[0].row[0].y); 




    } 

    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    new Test().start(); 
} 

} 




package test2; 


public class Coordinate{ 

    int x; 
    int y; 

    Coordinate(int x, int y){ 

     this.x = x; 
     this.y = y;  

    } 

}

package test2; 

import test2.Coordinate; 


public class CoordinateRow { 

    Coordinate[] row; 

    CoordinateRow(Coordinate[] row){ 
     this.row = row; 

    } 
} 

그것을 삽입 된 마지막 좌표 세트를 항상 표시합니다.

누군가 내가 잘못하고있는 것을 설명 할 수 있기를 바랍니다.

+2

당신은 우리에게 실제 코드를 표시하지 않는를 포함, 당신은 우리에게 코드를 표시하고 그 코드를 들여 쓰지 않아서 읽기가 어렵고, 이름 선택 (SubClass와 SubClass2)도 끔찍하기 때문에 이러한 클래스가 숨겨져있는 것을 이해하기 어렵습니다. –

+0

정확히 무엇이 필요합니까? x 값과 y 값을 어디에서 변경하고 있습니까? – SMA

+0

죄송합니다. 배열 인덱스를 의미했습니다. – Rlw95

답변

0

동일한 배열 row을 사용하고 있는데, 값 대신 참조를 전달하기 때문에 작동하지 않습니다. 새 배열을 만들어야합니다. 두 main[0]main[1]은 동일한 참조

SubClass[] row = new SubClass[5]; 
SubClass[] row2 = new SubClass[5]; 
SubClass2[] main = new SubClass2[10]; 

void start(){ 


row[0] = new SubClass(4, 9); 
row[1] = new SubClass(4, 1); 
row[2] = new SubClass(0, 4); 

main[0] = new SubClass2(row); 


row2[0] = new SubClass(5, 3); 
row2[1] = new SubClass(7, 2); 
row2[2] = new SubClass(4, 8); 


main[1] = new SubClass2(row2); 

out.println(main[0].row[0].y); 

}

이 코드의 일부입니다 ...

+0

할당이 정확히 무엇인지 설명하기는 약간 어렵지만 도움을 주셔서 감사합니다. – Rlw95

+0

이것은 다음과 같습니다. 첫 번째 행의 좌표로 시작하여 뒤쪽에 두 번째 행의 좌표를 추가 한 다음 앞에 세 번째 행의 좌표를 추가하십시오. 새 Coordinate 및 CoordinateRow 클래스를 만듭니다. 이 과제. 후자의 클래스에는 전방 또는 후방에 CoordinateRow를 추가하는 메소드와 메소드를 추가하여 전방 또는 후방에 단일 좌표를 추가하는 메소드가 있습니다. 위 그림과 같이 몇 줄의 좌표가 있습니다. 5,4 4,9 8,7 희망이 명확 해집니다. – Rlw95