我正在努力练习并更好地创建对象并有效地使用它们。为了练习,我创建了一个名为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());
}
}
答案 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并打印出其中包含的元素。