title: toString() only printing default values
body: <p>I am trying to use a toString() method in order to print out some private fields. However, whenever I attempt to send an object of the appropriate class to a print method, it only prints out the default values of each of the fields, no matter what I change them to. Any help would be greatly appreciated :) Here is the class with the toString() method (it also overrides another class which is where the getters are coming from). Sorry I am slow at editing this post. Not familiar with the text editor on here.</p>
  
  <p>Person Class    </p>
  
  <pre><code>public class Person
  {
  // Declare all the fields as strings
  private String firstName = "", lastName = "", address = "", zipcode = "",
          phone = "";  // There are accessors and mutators for these as well
  public String toString()
  {
          String str = "First name: " + firstName + "...Last name: " + lastName + 
                  "... Street address: " + address + "... Zipcode: " + zipcode + 
                  "... Phone number: " + phone;
  
      return str;
  }
  </code></pre>
  
  <p>Student Class</p>
  
  <pre><code>  public class Student extends Person
    {
      // declare fields that are not in Person
      private String major = "";
      private double gpa;
  
          // Declare accessor and mutator methods for the fields
          public String getMajor()
          {
              return major;
          }
  
      public void setMajor(String major)
      {
          this.major = major;
      }
  
      public double getGpa()
      {
          return gpa;
      }
  
      public void setGpa(double gpa)
      {
          this.gpa = gpa;
      }
  
  
      // Create a toString method that overrides the one in Person
      public String toString()
      {
          String str = "First name: " + getFirstName() + "...Last name: " + 
                  getLastName() + "... Street address: " + getAddress() + 
                  "... Zipcode: " + getZipcode() + "... Phone number: " +
                  getPhone() + "... Grade point average: " + getGpa() +
                  "...Major: " + getMajor();
  
          return str;
      }
  }
  </code></pre>
  
  <p>Here is the entire main class... a lot of it is tedious code since it is a homework assignment, but the main idea is to:
  "Write an application named CollegeList that declares an array of 4 “regular” CollegeEmployees, 3 Faculty, and 7 Students. Prompt the user to specify which type of person’s data will be entered (‘C’, ‘F’, or ‘S’), or allow the user to quit (‘Q’). While the user chooses to continue (that is, does not quit), accept data entry for the appropriate type of person. If the user attempts to enter data for more than 
  4 college employees, 3 faculty, or 7 students, display an error message. When the user quits, display a report on the screen listing each group of Persons under the appropriate heading “College Employees,” “Faculty,” or “Students”. If the user has not entered data forone or more types of persons during a session, display an appropriate message under the appropriate heading.</p>
  
  <p>MAIN CLASS</p>
  
  <pre><code>import java.util.Scanner;  // Needed for Scanner class
  
  public class CollegeList
  {
  
  /**
   * @param args the command line arguments
   */
  public static void main(String[] args)
  {
      // Declare the arrays of people
      Person[] people = new Person[14];
  
      // These three arrays are being made to print out the types of people
      // at the end neatly
      Faculty[] fArray = new Faculty[4];
      Student[] sArray = new Student[7];
      CollegeEmployee[] cArray = new CollegeEmployee[3];
  
      // Prompt for users input
      System.out.print("Please choose the type of person you are entering " +
              "data for.\nFor a student enter \"S\"; for a faculty member " +
              "enter \"F\"; for a college employee enter \"C\"; and to quit " 
              + "enter \"Q\": ");
  
      Scanner keyboard = new Scanner(System.in);
      String type = keyboard.next();  // the type of person
      System.out.println();
  
      // initialize counts of persons so that user does not enter more
      int facultyCount = 0;
      int studentCount = 0;
      int employeeCount = 0;
  
      // initialize index of the array to 0
      int index = 0;
  
      // continue until the user enters Q or until one of the types of people
      // overflows or until all 14 elements are taken up
      while (!type.equals("Q") &amp;&amp; (facultyCount &lt;= 3) &amp;&amp; (studentCount &lt;= 7)
              &amp;&amp; (employeeCount &lt;= 4) &amp;&amp; (index &lt; 14))
      {
          if(type.equals("S") &amp;&amp; !type.equals("Q")) // Enter info for student
          {
              // Give the indexes the adresses
              people[index] = new Student();
              sArray[studentCount] = new Student();
  
              // Set the info
              personInfo(people[index]);
              studentInfo((Student)people[index]);
              System.out.println("\n");
  
              // Increment the counts
              studentCount++;
              index++;
          }
  
          else if(type.equals("C") &amp;&amp; !type.equals("Q")) // Enter info for
          {                                              // college employee
              // Give the indexes the adresses
              people[index] = new CollegeEmployee();
              cArray[employeeCount] = new CollegeEmployee();
  
              // Set the info
              personInfo(people[index]);
              employeeInfo((CollegeEmployee)people[index]);
              System.out.println("\n");
  
              // Increment the counts
              employeeCount++;
              index++;
          }
  
          else if(type.equals("F") &amp;&amp; !type.equals("Q")) // enter info for faculty
          {
              // Give the indexes the adresses
              people[index] = new Faculty();
              fArray[facultyCount] = new Faculty();
  
              // Set the info
              personInfo(people[index]);
              employeeInfo((CollegeEmployee)people[index]);
              facultyInfo((Faculty)people[index]);
              System.out.println("\n");
  
              // increment the counts
              facultyCount++;
              index++;
          }
  
          System.out.print("Please enter the next person type (S, C, F, " +
                  "or Q): ");
          type = keyboard.next();
      }
  
      // Displays error message then closes program if there was overflow
      if ((facultyCount &gt; 3) || (studentCount &gt; 7) || (employeeCount &gt; 4))
      {
          System.out.println("Too much data for one type of  person. Goodbye.");
          System.exit(0);
      }
  
  
      // Print the data for all of the college employees
      System.out.println("\n\n");
      System.out.println("THE COLLEGE EMPLOYEES");
      for (int i = 0; i &lt; employeeCount; i++)
      {
          System.out.println(cArray[i]);
          System.out.println("\n");
      }
      // Determines if not all of the personS type was filled
      if (employeeCount != 4)
      {
          System.out.println("There are " + (4 - employeeCount) + " employees"
                  + " who are not recorded.");
      }
  
  
  
      // Print the data for all of the faculty
      System.out.println("\n\n");
      System.out.println("THE FACULTY");
      for (int i = 0; i &lt; facultyCount; i++)
      {
          System.out.println(fArray[i]);
          System.out.println("\n");
      }
      // Determines if not all of the person type was filled
      if (facultyCount != 3)
      {
          System.out.println("There are " + (3 - facultyCount) + " faculty "
                  + "members who are not recorded.");
      }
  
  
  
      // Print the data for all of the students
      System.out.println("\n\n");
      System.out.println("THE STUDENTS");
      for (int i = 0; i &lt; studentCount; i++)
      {
          System.out.println(sArray[i]);
          System.out.println("\n");
      }
      // Determines if not all of the person type was filled
      if (studentCount != 7)
      {
          System.out.println("There are " + (7 - studentCount) + " students "
                  + "who are not recorded.");
      }
  }
  
  // prompts the user for data input that is universal to all the people
  public static void personInfo(Person p)
  {
      Scanner keyboard = new Scanner(System.in);
  
      System.out.print("First name: ");
      String fName = keyboard.nextLine();
      System.out.println();
  
      System.out.print("Last name: ");
      String lName = keyboard.nextLine();
      System.out.println();
  
      System.out.print("Street address: ");
      String address = keyboard.nextLine();
      System.out.println();
  
      System.out.print("Zipcode: ");
      String zipcode = keyboard.nextLine();
      System.out.println();
  
      System.out.print("Phone number: ");
      String phone = keyboard.nextLine();
      System.out.println();
  
      // Sets the data accordingly
      p.setFirstName(fName);
      p.setLastName(lName);
      p.setAddress(address);
      p.setZipcode(zipcode);
      p.setPhone(phone);
  }
  
  // Sets the data for student fields
  public static void studentInfo(Student s)
  {
      Scanner keyboard = new Scanner(System.in);
  
      System.out.print("Grade point average: ");
      double gpa = keyboard.nextDouble();
      System.out.println();
  
      System.out.print("Major: ");
      String major = keyboard.next();
      System.out.println();
  
      // Set the data accordingly
      s.setGpa(gpa);
      s.setMajor(major);
  }
  
  // Sets the data for Faculty fields
  public static void facultyInfo(Faculty f)
  {
      Scanner keyboard = new Scanner(System.in);
  
      System.out.println("Is the faculty tenured (\"yes\" or \"no)\"?");
      String tenured = keyboard.next();
  
      // set the data accordingly
      switch (tenured)
      {
          case "yes" :
              f.setTenured(true);
              break;
          case "no" :
              f.setTenured(false);
              break;
      }
  }
  
  // Sets the info for CollegeEmployee fields
  public static void employeeInfo(CollegeEmployee c)
  {
      Scanner keyboard = new Scanner(System.in);
  
      System.out.print("Social security number: ");
      String socialSecurity = keyboard.next();
      System.out.println();
  
      System.out.print("Salary: ");
      String salary = keyboard.next();
      System.out.println();
  
      System.out.print("Department name: ");
      String department = keyboard.next();
      System.out.println();
  
      // Set the data accordingly
      c.setSocialSecurity(socialSecurity);
      c.setSalary(salary);
      c.setDepartment(department);
  }
  </code></pre>
  
  <p>}</p>