Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中打印出多个对象的属性_Java_Arrays_Loops_Tostring - Fatal编程技术网

在java中打印出多个对象的属性

在java中打印出多个对象的属性,java,arrays,loops,tostring,Java,Arrays,Loops,Tostring,我创建了一个person类,具有属性age和name。我已经在一个对象数组中创建了这个类的5个实例,并且想用for循环打印属性。我的理解是,当您尝试打印对象时,toString被显式调用,因此我重写toString,以便在调用对象时打印对象的两个属性 这是我的密码: class Person { int age; String name; public Person(String name, int age) { this.age = age;

我创建了一个person类,具有属性age和name。我已经在一个对象数组中创建了这个类的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]);
}

您的
for
循环终止条件不正确,您需要
i

使用
i>pp.length
循环不会执行任何语句。只要终止条件为
true
,循环才会执行


此外,您没有正确重写
toString
:您的
toString
方法不应该接受任何参数:您的实例变量
name
age
将可用于函数。

您的
for
循环终止条件不正确,您需要
i

使用
i>pp.length
循环不会执行任何语句。只要终止条件为
true
,循环才会执行


此外,您没有正确重写
toString
:您的
toString
方法不应该接受任何参数:您的实例变量
name
age
将可用于函数。

您应该重写默认的toString()(没有参数),而是添加了一个新方法。因此,请删除该参数并使用“this”代替person参数

您应该覆盖默认的toString()(不带参数),而应该添加一个新方法。因此,删除该参数并使用“this”代替person参数

您需要更改两件事

1) 对于
i>pp.length
i

2)
System.out.print
System.out.println
中使用的
toString()
方法没有参数,因此将其更改为

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

你需要改变两件事

1) 对于
i>pp.length
i

2)
System.out.print
System.out.println
中使用的
toString()
方法没有参数,因此将其更改为

public String toString() {
    return "Name: " + name + "Age: " + age;
}
需要在Person类中重写的toString()函数不应包含任何参数(因为在其中定义它的对象类不包含参数)。该功能的更正代码将为

@Override public String toString()
{
   return return "Name: " + name +"Age: "+ age;
}
需要在Person类中重写的toString()函数不应包含任何参数(因为在其中定义它的对象类不包含参数)。该功能的更正代码将为

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

你的问题是什么?你的问题是什么?