[英]printing out attributes of multiple objects in java
我創建了一個具有年齡和姓名屬性的人員類。 我也在對象數組中創建了該類的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]);
}
你需要改變兩件事
1)在i > pp.length
到i < pp.length
2) System.out.print
或System.out.println
中使用的toString()
方法沒有參數,因此請將其更改為類似
public String toString() {
return "Name: " + name + "Age: " + age;
}
您的for
循環終止條件不正確,您需要i < pp.length
。
使用i > pp.length
您的循環將不執行任何語句。 僅當終止條件為true
,循環才會執行。
此外,您沒有正確地重寫toString
:您的toString
方法不應使用任何參數:您的實例變量name
和age
將對函數可用。
在Person類中需要重寫的toString()函數不應包含任何參數(因為在其中定義了該對象的Object類不包含參數)。 該函數的更正代碼將是
@Override public String toString()
{
return return "Name: " + name +"Age: "+ age;
}
您應該覆蓋默認的toString()(不帶參數),而是添加了一個新方法。 因此,請刪除該參數,並使用“ this”代替個人參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.