簡體   English   中英

在Java中打印出多個對象的屬性

[英]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.lengthi < pp.length

2) System.out.printSystem.out.println中使用的toString()方法沒有參數,因此請將其更改為類似

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

您的for循環終止條件不正確,您需要i < pp.length

使用i > pp.length您的循環將不執行任何語句。 僅當終止條件為true ,循環才會執行。

此外,您沒有正確地重寫toString :您的toString方法不應使用任何參數:您的實例變量nameage將對函數可用。

在Person類中需要重寫的toString()函數不應包含任何參數(因為在其中定義了該對象的Object類不包含參數)。 該函數的更正代碼將是

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

您應該覆蓋默認的toString()(不帶參數),而是添加了一個新方法。 因此,請刪除該參數,並使用“ this”代替個人參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM