allocating for array and then using constructor

allocation, arrays, constructor, java

Solution

Yes, it is correct.

The line:

Person[] people = new Person[20]

allocates the array, full of references to `null` while the line:

new Person(NameUtils.randomFirstName(),
                      NameUtils.randomLastName());  //this line

fills it [the array] by instantiating objects of type `Person`, and assigning the reference in the array.

Problem

Person.java ``` public class Person {     public String firstName, lastName;     public Person(String firstName,             String lastName) {         this.firstName = firstName;         this.lastName = lastName;     }     public String getFullName() {         return(firstName + " " + lastName);     } } ``` PersonTest.java ``` public class PersonTest {     public static void main(String[] args) {         Person[] people = new Person[20];              //this line .         for(int i=0; i<people.length; i++) {             people[i] =                  new Person(NameUtils.randomFirstName(),                         NameUtils.randomLastName());  //this line         }         for(Person person: people) {             System.out.println("Person's full name: " +                     person.getFullName());         }     } } ``` In above code, we used twice "new". Is this code is correct or wrong? First one is for allocation of array. But why the second one? It's from lecture notes.

Original source