2012-06-24 5 views
1

나이와 이름 속성을 가진 사람 클래스를 만들었습니다. 객체 배열에 5 개의 클래스 인스턴스를 생성했으며 for 루프를 사용하여 속성을 출력하려고합니다. 객체를 인쇄하려고 할 때 toString이 명시 적으로 호출되므로 객체가 호출 될 때 객체의 두 속성을 모두 인쇄하도록 toString을 재정의합니다.자바에서 여러 객체의 속성을 인쇄합니다.

여기 내 코드입니다 :

class Person 
{ 
    int age; 
    String name; 

    public Person(String name, int age) 
    { 
     this.age = age; 
     this.name = name; 
    } 


    public String toString(Person p) 
    { 
     return "Name: " + p.name +"Age: "+ p.age; 
    } 
} 


public class P1Q5Bubble { 

public static void main(String[] args) { 

     Person [] pp = new Person [5]; 

     pp[0] = new Person("Andy" , 18); 
     pp[1] = new Person("Lisa" , 20); 
     pp[2] = new Person("Bob" , 10); 
     pp[3] = new Person("Eva" , 18); 
     pp[4] = new Person("Tim" , 13);  




     for(int i = 0; i> pp.length ; i++) 
      System.out.println(pp[i]); 
} 
+0

정확히 무엇입니까? –

답변

3

귀하의 for 루프 종료 조건이 올바르지 않습니다, 당신은 i < pp.length이 필요합니다.

i > pp.length을 사용하면 루프가 명령문을 실행하지 않습니다. 루프는 종료 조건이 true 인 경우에만 실행됩니다.

는 또한 제대로 toString을 무시하지 않는 : 당신의 toString 방법은 인수를 복용해서는 안 : 인스턴스 변수 nameage 함수로 사용할 수 있습니다.

0

새 메소드를 추가 한 대신 기본 toString()을 (인수없이) 대체해야합니다. 그래서 인수를 제거하고 '이'사람 인자의 자리에

4

당신은 System.out.print 또는 System.out.println 아무튼 '에서 사용을위한 i > pp.length

2) toString()i < pp.length에 방법에 두 가지

1)을 변경해야 사용 인수가 없으므로 다음과 같이 변경하십시오.

public String toString() { 
    return "Name: " + name + "Age: " + age; 
} 
+0

와우 나는 어리 석다. .. 고마워! – user1229164

1

Person 클래스에서 재정의해야하는 toString() 함수에는 인수 ince에는 정의 된 Object 클래스에 인수가 포함되지 않습니다. 해당 기능에 대한 수정 된 코드는

@Override public String toString() 
{ 
    return return "Name: " + name +"Age: "+ age; 
} 
관련 문제