有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java保存对象以供以后使用

我正在努力练习,在创建对象和有效使用它们方面做得更好。为了练习,我创建了一个名为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) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    您必须重写Person类中的toString()方法

    人类

    class Person{
     String name;
     int age;
    
     public String toString(){    
      return "person's name"+name+"person's age"+age;    
    }
    
  3. # 3 楼答案

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

    下面是一个例子:

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

    此方法需要位于person类中,以便ArrayList对象知道如何显示对象

    以下是来自^{}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).