【问题标题】:Initiating objects in a for loop在 for 循环中初始化对象
【发布时间】:2014-03-06 12:17:47
【问题描述】:
public static int askingAmount() {
    System.out.println("How many persons are there in your company?");
    Scanner amountS = new Scanner(System.in);
    amount = amountS.nextInt();
    System.out.println(amount);
    amountS.close();
    return amount;
}
public static void makingPersons() {
    for (int i=0 ; i<amount ; i++) {
        int personNumber=0;
        Person person[i] = new Person();  //<--- The problem
        System.out.println("person");
    }
}

在第一种方法中,我试图询问用户他们有多少人,然后返回金额。在第二个中,我想创建等量的 Person 对象并使用变量“i”将它们命名为 person1、person2、person3,但我没有让它工作。有什么线索吗?

【问题讨论】:

    标签: java


    【解决方案1】:

    定义循环外的数组为类成员:

    Person[] person;
    

    然后在askingAmount你初始化它:

    person = new Person[amount];
    

    在循环内部做:

    person[i] = new Person();
    

    【讨论】:

      【解决方案2】:
      public static void makingPersons() {
          Person[] persons = new Person[amount];
          for (int i=0 ; i<amount ; i++) {
              int personNumber=0;
              persons[i] = new Person();  //<--- The solution
              System.out.println("person");
          }
      }
      

      【讨论】:

        【解决方案3】:

        您必须在循环外启动一个 Person 类型的数组,然后用新实例填充它,如下所示:

        public static void makingPersons() {
        
            Person[] person = new Person[amount];
        
            for (int i=0 ; i<amount ; i++) {
                int personNumber=0;
                person[i] = new Person();
                System.out.println("person");
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-02
          • 1970-01-01
          • 1970-01-01
          • 2011-04-02
          • 2013-09-03
          • 1970-01-01
          相关资源
          最近更新 更多