Printf statment is producing weird output that doesnt make sense : This is all my code for listing the information from my array:

    private void listStudent()
    {
        {       
    System.out.printf("%s %-7s %14s %10s","ID","First Name","Last Name","Age\n");
    for (int i= 0; i<count; ++i)
     {
     System.out.println(arr[i]);   
    }
    System.out.println();
    Scanner scanner = new Scanner(System.in);
    scanner.nextLine();


    public class Student {
    private String fname;
    private final String lname;
    double age;
    private final String id;
    int count;
    
   This is my code from the student.java file

    Student(String id, String fname, String lname, double age, int count) 
    {
       this.id = id;
       this.fname = fname;
       this.lname = lname;
       this.age = age;
       this.count = count;
    }
[This is what the output of the code i get is.][1]


  [1]: https://i.stack.imgur.com/6GbM0.png