I'm currently taking an Introduction to Java class where we are currently on Arrays topics. We have a class lab where are suppose to create a simple array program consisting a two classes (Passenger.java and Demo.java). The array can be of any sizing (minimum 4) and we can hard code details into few elements.
So I declared the array in the Demo.java with size of 10, and I initialized/hard code 8 of the elements (leaving 2 elements un-initialized) with one of the constructor in Passenger.java. Then using a for-loop and counters I determine the number of elements is not null, and initialize the remaining element with the counter value increase by 1 (e.g. passengers[index++] = new Passenger()).
However, when I tried to call a method after initializing the newly initialized element I got java.lang.NullPointerException error. So I tested by called exact index which is 8 (passengers[8] = new Passenger()) and then calling the method again, it works.
Hence may I know which part of my code is having problem.
Note:
- I cannot use ArrayList
- I have viewed this initialize all variables but still get NullPointerExceptions error
Passenger Class
import java.util.Scanner;
public class Passenger {
    private String title;
    private String firstName;
    private String lastName;
    public Passenger() {
    }
    public Passenger(String title, String firstName, String lastName) {
        this.title = title;
        this.firstName = firstName;
        this.lastName = lastName;
    }
    public void enterDetails() {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter your title: ")
        title = keyboard.next();
        System.out.print("Enter your first name: ")
        firstName = keyboard.next();
        System.out.print("Enter your last name: ")
        lastName = keyboard.next();
    }
}
Demo Class
public class Demo {
    public static void main(String[] args) {
        Passenger[] passengers = new Passenger[10];
        passengers[0] = new Passenger("Mr", "Benjamin", "Parker");
        passengers[1] = new Passenger(....);
        passengers[2] = new Passenger(....);
        passengers[3] = new Passenger(....);
        passengers[4] = new Passenger(....);
        passengers[5] = new Passenger(....);
        passengers[6] = new Passenger(....);
        passengers[7] = new Passenger(....);
        int index = 0;
        for (int i = 0; i < passengers.length; i++) {
            if (passengers[i] != null)
                index++;
        }
        passengers[index++] = new Passenger();
        passengers[index].enterDetails();
    }
}
 
     
     
    