Java 如何在每次程序循环时创建新对象?

Java 如何在每次程序循环时创建新对象?,java,Java,我的程序是如何设置的,我的代码运行并允许用户创建一个新的电影对象,然后将其存储到构造函数中。然后,它提供了创建新电影的选项,该电影随后存储在同一个电影对象中,最终覆盖先前创建的电影对象。许多实现将对象创建放在一个循环中,但这要求将所有多个值同时存储到多个对象中,我不打算这样做。我不知道如何着手解决这个问题。 这是我的密码 电影课 public class Movie { private int id; private String name; private String

我的程序是如何设置的,我的代码运行并允许用户创建一个新的电影对象,然后将其存储到构造函数中。然后,它提供了创建新电影的选项,该电影随后存储在同一个电影对象中,最终覆盖先前创建的电影对象。许多实现将对象创建放在一个循环中,但这要求将所有多个值同时存储到多个对象中,我不打算这样做。我不知道如何着手解决这个问题。 这是我的密码 电影课

public class Movie {
    private int id;
    private String name;
    private String description;
    private String[] genre;
    private String[] actors;
    private String[] language;
    private String countryOfOrigin;
    private Map<String, Integer> ratings;

    Movie() {
    }

    //Constructor
    public Movie(int id, String name, String description, String[] genre, String[] actors, String[] language, String countryOfOrigin, Map<String, Integer> ratings) {
        this.id = id;
        this.name = name;
        this.description = description;
        this.genre = genre;
        this.actors = actors;
        this.language = language;
        this.countryOfOrigin = countryOfOrigin;
        this.ratings = ratings;
    }

    //setters
    public void setid(int id) {
        this.id = id;
    }

    public void setname(String name) {
        this.name = name;
    }

//getters
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "\nMovie Id: " + id + " \nMovie Name: " + name + "\nMovie Description: " + description + "\nMovie Genre(s): " + Arrays.toString(genre) + "\nMovie Actor(s): " + Arrays.toString(actors) + "\nMovie Language(s): " + Arrays.toString(language) + "\nCountry of Origin: " + countryOfOrigin + "\nRatings: " + ratings +"";
    }

}

创建电影对象后,可以将其存储在某种容器中。例如,您可以使用ArrayList

ArrayList电影=新建ArrayList


你可以把这个放在你的while循环上面。然后,在创建对象之后,可以将其添加到容器中,例如movies.addmovie1,您可以将其放在调用构造函数的地方。稍后要访问该对象,您可以使用movies.getindex

也许您可以将每个新电影放入一个ArrayList,这样在最后您就有了一个不同电影的列表。
public class Main {
    // --- Private global scanner initialization --- //
    private static Scanner input = new Scanner(System.in);

    public static void main(String[] args) throws Exception {
        while (loopAgain) {
            Random rand = new Random();
            int id = rand.nextInt(MAX);

            System.out.println("\nCreate Poll");

            System.out.println("\nEnter the Movie Name: ");
            String name = input.nextLine();
            Movie movie1 = new Movie(id, name, description, genre, actors, language, countryOfOrigin, mapRatings);

            System.out.println("Create new movie? (y/n): ");
            String answer = input.nextLine();

            if (answer.equals("y") || answer.equals("Y")) {
                loopAgain = true;
            }
        }
    }
}