保存对象供以后使用

时间:2015-04-26 16:46:58

标签: java oop

我正在努力练习并更好地创建对象并有效地使用它们。为了练习,我创建了一个名为Person的类,在这个类中,我定义了每个人都有名字,姓氏和年龄。我有方法允许其他类设置人的名字,姓氏和年龄,然后还返回这些值。这是我被困的地方。我希望能够做到这一切,随着时间的推移接受名字和姓氏,但保存到某个地方,以便以后我可以使用它。例如,为学校课程制作学生名单。我希望能够接收并将Person类存储在数组中的特定对象或沿着这些行的某些东西。我确实尝试使用ArrayList执行此操作,但由于某种原因它不能正确输出。有帮助吗?谢谢!

    import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

        Person definePerson;
        String name;
        int age;
        ArrayList<Person> persons = new ArrayList<Person>();

        definePerson = new Person();
        System.out.print("Please Enter the first name: ");
        name = definePerson.enterFirst();
        System.out.print("Please Enter the last name: ");
        name = definePerson.enterLast();
        System.out.print("Please Enter their age: ");
        age = definePerson.enterAge();
        persons.add(definePerson);
        System.out.println("The Person ArrayList is: " + persons.toString());

    }
}

3 个答案:

答案 0 :(得分:3)

您必须覆盖Person类中的toString()方法。

人类

class Person{
 String name;
 int age;

 public String toString(){    
  return "person's name"+name+"person's age"+age;    
}

答案 1 :(得分:3)

问题是Java不知道如何将Person对象转换为可显示的字符串。您必须编写toString方法才能执行此操作。

以下是一个例子:

@Override
public String toString() {
    return name + ": " + age + " years old.";
}

此方法需要在您的person类中,以便ArrayList对象知道如何显示您的对象。

以下是AbstractCollection.java中的toString方法文档:

  

返回此集合的字符串表示形式。字符串表示由一个集合元素的列表组成,它们的迭代器返回它们的顺序,用方括号(“[]”)括起来。相邻元素由字符“,”(逗号和空格)分隔。元素按String.valueOf(Object)转换为字符串。

答案 2 :(得分:0)

ArrayList.toString不会输出列表中的项目,您需要迭代ArrayList并打印出其中包含的元素。