Below is a list of interfaces and classes that you will create for this assignment. Notice that this is a class hierarchy so some classes will build on (extend) other classes (one of the key concepts of OOP).
Each class is listed along with its data elements.
NOTE: All data should be declared private. Access to data will only be through set and get methods.
For this assignment, I ask that you don’t change the names of the data elements and the methods. They should be named exactly as you see here in order for the test class to work.
I strongly encourage you to use the built in code generator to generate the accessor methods to ensure that you follow standard Java naming conventions. The accessor methods, also referred to as the setters and getters, will be used in the test class.
You will supply the following methods for each class and interface.

- set/get methods for all data elements. The set method will take one argument which will be used to set the value. The get method will return the value of the data element.
- toString This method will return a formatted string containing all of the values for the elements. You can auto-generate this method using the built in code generator in Netbeans as well. The code generator will generate a toString method using JSON format which is an abbreviation for Javascript Object Notation. JSON has become a very commonly used data format. You don’t have to use this format but it is convenient.

1) IPerson
2) ICourse
3) IClassroom

1) Person (implements IPerson)
- name - String
- address - String
- socialSecurityNumber – String (format: 999-99-9999)
- dateOfBirth – GregorianCalendar

2) Student (extends Person)
- currentGPA - float
- dateOfGraduation - GregorianCalendar
- enrolledCourses - ArrayList<StudentCourse> (This will contain a list of StudentCourse objects. Each StudentCourse object will contain the id of an offered course and a list of grades for the course)

3) Faculty (extends Person)
- dateOfHire - GregorianCalendar
- dateOfTermination - GregorianCalendar
- status – Status (Status is an enumerated type)
- salary - double
- listOfCourses – ArrayList<FacultyCourse> (This will contain a list of FacultyCourse objects. FacultyCourse objects are the classes that the faculty teaches and contain a course id of an offered course and a list of students in the course)

4) Classroom (implements IClassroom)
- roomNumber - String
- typeOfRoom – RoomType (RoomType is an enumerated type)

5) OfferedCourse (implements ICourse)
- classroom - Classroom
- courseName - String
- courseId – String

6) StudentCourse (implements ICourse)
courseId – String
courseGrades – ArrayList<Float>
7) FacultyCourse (implements ICourse)

courseId – String
students – ArrayList<Student>

Solution PreviewSolution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
package backend;

import java.util.ArrayList;
import java.util.GregorianCalendar;

* @author
public class Faculty extends Person {
    private GregorianCalendar dateOfHire;
    private GregorianCalendar dateOfTermination;
    private Status status;
    private double salary;
    private ArrayList<FacultyCourse> listOfCourses;
    public enum Status {

    public Faculty() {

By purchasing this solution you'll be able to access the following files:

for this solution

or FREE if you
register a new account!

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available Java Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Upload a file
Continue without uploading

We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats