Note that there are some explanatory texts on larger screens.

plurals
  1. POtoString() only printing default values
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload