2012-01-30 4 views
0

나는이 배열을 인쇄 할 수있는 방법을 아는 사람이 객체를 포함하는 2 차원 배열을 가지고 있습니까? 왜냐하면 다음 코드를 사용하면 객체의 포함이 인쇄되지 않지만 기호를 인쇄하십시오.자바에서 객체의 2 차원 배열을 인쇄

Humans [][]cells= new Humans [7][7]; 

for (int row=0; row<cells.length; row++) { 
     for (int col=0; col<cells[row].length; col++) { 


      System.out.print(" " + cells[row][col]); 


      } 
} 
+0

예제 출력을 지나칠 수 있습니까? –

+0

일반 설정이 정상적으로 보이지만'Human'의'.toString()'메소드를 보지 않고서는 그것이 무엇을하는지 정확히 알 수 없거나'Human'에 정의되어 있지 않고 어디에서 상속 받았는지 알 수 없습니다. – FatalError

답변

3

문자열 연결에 포함하려는 경우 toString()을 휴먼 개체에 추가해야합니다.

public String toString() { 
    return "Name: " + name + " age: " + age + " shoe size: " + shoeSize; 
} 
1

당신은 toString를 사용하고, 2 차원 배열의 인스턴스가 적절하게 구현할 수 있는지 확인해야합니다.

Human current = cells[row][col]; 
// possibly do a null check 
System.out.print(current.toString()); 

처럼 가장 안쪽 루프 뭔가에

HumantoString을 구현해야합니다.

0

인간 클래스에서 toString() 메서드를 재정의하고 인간에 대해 인쇄 할 내용을 인쇄하십시오. 그런 다음

Arrays.toString(cells); 

을 사용하여 배열을 인쇄하십시오.

1

당신은 대신 다음 원하는 모든 클래스 (나는 이름과 물건을 믿고있어)의 세부 사항 등을 인쇄 할 인간 클래스의 toString 메소드를 오버라이드 (override) 할 필요를 작성해야

cells[row][col] 

:

cells[row][col].toString() 
0

당신은 당신의 요구에 맞게 클래스 인간 내의 toString를 오버라이드 (override) 할 필요가 좋은 참고에게 있습니다.

0

먼저 인간 인스턴스의 내용을 나타내는 문자열을 반환하려면 Humans 객체의 toString() 메서드를 재정의해야합니다.

다음은 내부 for 루프가 완료된 후 새 행을 인쇄하는 것이 좋습니다. 그렇지 않으면 전체 행렬의 전체 내용을 단 한 줄로 인쇄합니다 여기에).

1

@hvgotcodes는 Human 클래스가 toString 메소드를 구현했는지 확인해야한다고 했으므로

class Human { 
    int age; 
    public Human(int age){ 
     this.age = age; 
    }  
    @Override 
    public String toString(){ 
     return "[Human: age :=" + age + "]"; //or whatever's appropriate! 
    } 
} 

다음 이러한 개체의 당신의 2 차원 배열을 인쇄하려면 당신이 쓸 수 있습니다 :

for(int i = 0; i < cells.length; i++){ 
    for(int j = 0; j < cells[i].length; j++){ 
     System.out.print(cells[i][j]); //invokes toString method in Human.. 
     if(j < cells[i].length -1) 
      System.out.print(", "); 
     } 
     System.out.println(); 
    } 
} 
예를 들어 인간은 하나의 숫자 (사람의 나이)은 다음과 같이 수있는 가장 기본적인 포함 된 경우
관련 문제