java - 保存对象供以后使用

标签 java oop

我正在努力练习并更好地创建对象并有效地使用它们。为了练习,我创建了一个名为 Person 的类,在这个类中我定义每个人都有名字、姓氏和年龄。我有方法允许其他类设置人的名字、姓氏和年龄,然后也返回这些值。这就是我被困的地方。我希望能够做到所有这些,根据年龄输入名字和姓氏,但将其保存在某个地方,以便以后我可以使用它。示例是为学校类(class)制作学生名单。我希望能够接收并存储那个 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());

    }
}

最佳答案

问题是 Java 不知道如何将 Person 对象转换为可显示的字符串。为此,您必须编写一个 toString 方法。

这是一个例子:

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

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

这是来自 AbstractCollection.javatoString 方法文档:

Returns a string representation of this collection. The string representation consists of a list of the collection's elements in the order they are returned by its iterator, enclosed in square brackets ("[]"). Adjacent elements are separated by the characters ", " (comma and space). Elements are converted to strings as by String.valueOf(Object).

关于java - 保存对象供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880492/

相关文章:

php - 在 PHP 中获取模型属性

java - 在抽象类中执行方法执行顺序

java - 同时运行 Frame 和循环?

java - 从每个类别中选择一个在 java 8 流中应具有相同可用日期的资源

java - 当其他线程访问同步块(synchronized block)时,一个线程等待多长时间?

java - SWT - 将图像添加到表中的按钮 - tableViewer

Java:偶尔使用的对象是否应该作为类成员包含在内?

javascript - 封装在 Javascript 中

c++ - 树的递归和非递归过程

java - org.hibernate.hql.internal.ast.QuerySyntaxException : unexpected token: >= near line 1