开发者社区> 问答> 正文

每次程序循环时如何创建一个新对象?

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

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 +"";
    }

}

主班

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;
   }

问题来源:Stack Overflow

展开
收起
montos 2020-03-23 14:38:36 593 0
1 条回答
写回答
取消 提交回答
  • 创建影片对象后,可以将它们存储在某种容器中。因此,您可以使用ArrayList为例

    ArrayList<Movie> movies= new ArrayList<Movie>();。
    

    您可以将其放在while循环上方。然后,在创建对象之后,可以将其添加到容器中,例如可以将其movies.add(movie1)放在调用构造函数的位置。稍后访问对象,您可以使用movies.get(index)

    回答来源:Stack Overflow

    2020-03-23 14:39:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对象的生命期管理 立即下载
建立联系方法之一 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载