我正在努力练习并更好地创建对象并有效地使用它们。为了练习,我创建了一个名为 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.java
的 toString
方法文档:
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/