Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create the classes described below. Use meaningful class variables and function

ID: 3872306 • Letter: C

Question

Create the classes described below. Use meaningful class variables and function names. All class variables are private, while functions are public. Each class need to have at least two constructors. Add an instance counter to Student, use the constructors to update this variable. Add a Driver class, instantiate at least 3 objects of each class using constructors, and print each object to the console. BONUS: Automate the generation of new ID values for Student and Employee types. So, first ID=1, 2nd ID= 2, and so on. Ensure programmatically that once created, an ID value cannot be accidentally changed. (up to +5 points) . Team (name, city) >NBATeam (arenaName, coachName) .Team tname, c Person (name, dateOfBirth)-> student (ID, SchoolName, GPA) Person (name, dateOfBirth)-> Employee(ID, title, hireDate, deptName, salary) Employee > SoftwareDeveloper (languages, technologies) . .

Explanation / Answer

All classes are written below:

package com;

import java.lang.reflect.Field;

public class Team {

            private String name;

            private String city;

            public Team(){

            }

            public Team(String name, String city){

                        this.name=name;

                        this.city=city;

            }

            public String getName() {

                        return name;

            }

            public void setName(String name) {

                        this.name = name;

            }

            public String getCity() {

                        return city;

            }

            public void setCity(String city) {

                        this.city = city;

            }

            public String toString() {

                        StringBuilder result = new StringBuilder();

                        String newLine = System.getProperty("line.separator");

                        result.append( this.getClass().getName() );

                        result.append( " Object {" );

                        result.append(newLine);

                        //determine fields declared in this class only (no fields of superclass)

                        Field[] fields = this.getClass().getDeclaredFields();

                        //print field names paired with their values

                        for ( Field field : fields ) {

                                    result.append(" ");

                                    try {

                                                result.append( field.getName() );

                                                result.append(": ");

                                                //requires access to private field:

                                                result.append( field.get(this) );

                                    } catch ( IllegalAccessException ex ) {

                                                System.out.println(ex);

                                    }

                                    result.append(newLine);

                        }

                        result.append("}");

                        return result.toString();

            }

}

package com;

public class NBATeam extends Team {

            private String arenaName;

            private String coachName;

            public NBATeam(){

                       

            }

            public NBATeam(String arenaName, String coachName){

                        this.arenaName=arenaName;

                        this.coachName=coachName;

            }

            public String getArenaName() {

                        return arenaName;

            }

            public void setArenaName(String arenaName) {

                        this.arenaName = arenaName;

            }

            public String getCoachName() {

                        return coachName;

            }

            public void setCoachName(String coachName) {

                        this.coachName = coachName;

            }

}

package com;

import java.lang.reflect.Field;

import java.util.Date;

public class Person extends ObjectBean{

            private String name;

            private Date dateOfBirth;

            public Person(){

            }

            public Person(String name, Date dateOfBirth){

                        this.name=name;

                        this.dateOfBirth=dateOfBirth;

            }

            public String getName() {

                        return name;

            }

            public void setName(String name) {

                        this.name = name;

            }

            public Date getDateOfBirth() {

                        return dateOfBirth;

            }

            public void setDateOfBirth(Date dateOfBirth) {

                        this.dateOfBirth = dateOfBirth;

            }

           

}

package com;

import java.util.Date;

public class Student extends Person {

            private static int counter=0;

            private final int ID;

            private String schoolName;

            private String GPA;

            public Student(){

                        this.ID=++counter;

            }

            public Student(String schoolName, String GPA){

                        this.ID=++counter;

                        this.schoolName=schoolName;

                        this.GPA=GPA;

            }

            public Student(String schoolName, String GPA,String name, Date dateOfBirth){

                        super(name,dateOfBirth);

                        this.ID=counter++;

                        this.schoolName=schoolName;

                        this.GPA=GPA;

            }

            public int getID() {

                        return ID;

            }

            public String getSchoolName() {

                        return schoolName;

            }

            public void setSchoolName(String schoolName) {

                        this.schoolName = schoolName;

            }

            public String getGPA() {

                        return GPA;

            }

            public void setGPA(String gPA) {

                        GPA = gPA;

            }

            public static void main(String args[]){

                        Student student1= new Student();

                        System.out.println(student1);

                       

                        Student student2= new Student("St. Paul School","8.2");

                        System.out.println(student2);

                       

                        Student student3= new Student("St. Xavier","8.5");

                        System.out.println(student3);

            }

}

package com;

import java.math.BigDecimal;

import java.util.Date;

public class Employee extends Person {

            private static int counter=0;

            private final int ID;

            private String title;

            private Date hireDate;

            private String deptName;

            private BigDecimal salary;

            public Employee(){

                        this.ID=++counter;

            }

            public Employee(String title, String name, Date dateOfBirth){

                        super(name,dateOfBirth);

                        this.ID=++counter;

                        this.title=title;

            }

            public int getID() {

                        return ID;

            }

            public String getTitle() {

                        return title;

            }

            public void setTitle(String title) {

                        this.title = title;

            }

            public Date getHireDate() {

                        return hireDate;

            }

            public void setHireDate(Date hireDate) {

                        this.hireDate = hireDate;

            }

            public String getDeptName() {

                        return deptName;

            }

            public void setDeptName(String deptName) {

                        this.deptName = deptName;

            }

            public BigDecimal getSalary() {

                        return salary;

            }

            public void setSalary(BigDecimal salary) {

                        this.salary = salary;

            }

           

           

            public static void main(String args[]){

                        Employee emp1= new Employee();

                        System.out.println("Employee: ID:"+emp1.getID());

                       

                        Date dateOfBirth= new Date(1983,21,6);

                        Employee emp2= new Employee("Director","John",dateOfBirth);

                        System.out.println("Employee: ID:"+emp2.getID()+" : "+emp2.getTitle()+" : "+emp2.getDateOfBirth());

                       

                        dateOfBirth= new Date(1980,15,2);

                        Employee emp3= new Employee("Typewriter","Kelly",dateOfBirth);

                        System.out.println("Employee: ID:"+emp3.getID()+" : "+emp3.getTitle()+" : "+emp3.getDateOfBirth());

            }

}

package com;

import java.util.Date;

public class Driver extends Person {

            public Driver(){

            }

            public Driver(String name,Date dateOfBirth ){

                        super(name,dateOfBirth);

            }

           

            public static void main(String args[]){

                        Date dateOfBirth= new Date(1983,21,6);

                        Driver driver1= new Driver("Mike",dateOfBirth);

                        System.out.println("Name:"+driver1.getName() +" Date Of Birth:"+driver1.getDateOfBirth() );

                        dateOfBirth= new Date(1981,12,1);

                        Driver driver2= new Driver("Lucy",dateOfBirth);

                        System.out.println("Name:"+driver2.getName() +" Date Of Birth:"+driver2.getDateOfBirth() );

                       

                        dateOfBirth= new Date(1983,16,8);

                        Driver driver3= new Driver("Lee",dateOfBirth);

                        System.out.println("Name:"+driver3.getName() +" Date Of Birth:"+driver3.getDateOfBirth() );

            }

}

package com;

import java.lang.reflect.Field;

public class ObjectBean {

           

            @Override

            public String toString() {

                        StringBuilder result = new StringBuilder();

                        String newLine = System.getProperty("line.separator");

                        result.append( this.getClass().getSimpleName() );

                        result.append( " Object {" );

                        result.append(newLine);

                        //determine fields declared in this class only (no fields of superclass)

                        Field[] fields = this.getClass().getDeclaredFields();

                        //print field names paired with their values

                        for ( Field field : fields ) {

                                    result.append(" ");

                                    try {

                                                field.setAccessible(true);

                                                result.append( field.getName() );

                                                result.append(": ");

                                                //requires access to private field:

                                                result.append( field.get(this) );

                                    } catch ( IllegalAccessException ex ) {

                                                System.out.println(ex);

                                    }

                                    result.append(newLine);

                        }

                        result.append("}");

                        return result.toString();

            }

}

package com;

public class SoftwareDeveloper extends Employee {

            private String[] languages;

            private String[] technologies;

            public String[] getLanguages() {

                        return languages;

            }

            public void setLanguages(String[] languages) {

                        this.languages = languages;

            }

            public String[] getTechnologies() {

                        return technologies;

            }

            public void setTechnologies(String[] technologies) {

                        this.technologies = technologies;

            }

           

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote