Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions src/main/java/students/jordaneldridge/maxxblue/Instructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package students.jordaneldridge.maxxblue;

import java.util.ArrayList;
import java.util.List;

public class Instructor extends Person {
private String department;
private List<Student> assignedStudents;

public Instructor(String id, String firstName, String lastName, String email, String department) {
super(id, firstName, lastName, email);
this.department = department;
this.assignedStudents = new ArrayList<>();
}

public String getDepartment() {
return department;
}

public void createAnnouncement(String message) {
System.out.println("[Announcement from " + getFullName() + "]: " + message);
}

public void addStudent(Student student) {
assignedStudents.add(student);
}

public void printRoster() {
System.out.println(getFullName() + "'s Roster:");
for (Student s : assignedStudents) {
System.out.println(" - " + s.getFullName()
+ " | Grade Level: " + s.getGradeLevel()
+ " | GPA: " + s.getGpa());
}
}

@Override
public String getSummary() {
return "[Instructor] " + getFullName() + " | Department: " + department;
}
}
46 changes: 46 additions & 0 deletions src/main/java/students/jordaneldridge/maxxblue/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package students.jordaneldridge.maxxblue;

import java.util.ArrayList;
import java.util.List;

public class Main {
public static void main(String[] args) {
// Students
Student jordan = new Student("S1", "Jordan", "Smith", "jordan@school.edu", 2, 3.8);
Student marcus = new Student("S2", "Marcus", "Brown", "marcus@school.edu", 1, 2.9);

// Instructor
Instructor rivera = new Instructor("I1", "Dr.", "Rivera", "rivera@school.edu", "Computer Science");

// Assign roster
rivera.addStudent(jordan);
rivera.addStudent(marcus);


rivera.printRoster();

List<Person> people = new ArrayList<>();
people.add(jordan);
people.add(marcus);
people.add(rivera);

System.out.println();
for (Person p : people) {
// Polymorphism: calls the correct overridden getSummary()
System.out.println(p.getSummary());
}

System.out.println();

// Stretch goal usage
School school = new School();
school.addStudent(jordan);
school.addStudent(marcus);
school.addInstructor(rivera);

school.printDirectory();

System.out.println();
rivera.createAnnouncement("Quiz on Friday. Study inheritance and overriding!");
}
}
41 changes: 41 additions & 0 deletions src/main/java/students/jordaneldridge/maxxblue/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package students.jordaneldridge.maxxblue;


public abstract class Person {
private String id;
private String firstName;
private String lastName;
private String email;

public Person(String id, String firstName, String lastName, String email) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}

// Getters
public String getId() {
return id;
}

public String getFirstName() {
return firstName;
}

public String getLastName() {
return lastName;
}

public String getEmail() {
return email;
}

// shared method
public String getFullName() {
return firstName + " " + lastName;
}

//abstract so subclasses must override
public abstract String getSummary();
}
36 changes: 36 additions & 0 deletions src/main/java/students/jordaneldridge/maxxblue/School.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package students.jordaneldridge.maxxblue;

import java.util.ArrayList;
import java.util.List;

public class School {
private List<Student> students;
private List<Instructor> instructors;

public School() {
this.students = new ArrayList<>();
this.instructors = new ArrayList<>();
}

public void addStudent(Student student) {
students.add(student);
}

public void addInstructor(Instructor instructor) {
instructors.add(instructor);
}

public void printDirectory() {
System.out.println("=== School Directory ===");

System.out.println("Students:");
for (Student s : students) {
System.out.println(" - " + s.getSummary());
}

System.out.println("Instructors:");
for (Instructor i : instructors) {
System.out.println(" - " + i.getSummary());
}
}
}
33 changes: 33 additions & 0 deletions src/main/java/students/jordaneldridge/maxxblue/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package students.jordaneldridge.maxxblue;

public class Student extends Person {
private int gradeLevel;
private double gpa;

public Student(String id, String firstName, String lastName, String email, int gradeLevel, double gpa) {
super(id, firstName, lastName, email);
this.gradeLevel = gradeLevel;
this.gpa = gpa;
}

public int getGradeLevel() {
return gradeLevel;
}

public double getGpa() {
return gpa;
}

public boolean isOnHonorRoll() {
return gpa >= 3.5;
}

@Override
public String getSummary() {
String honorRoll = isOnHonorRoll() ? "Yes" : "No";
return "[Student] " + getFullName()
+ " | Grade Level: " + gradeLevel
+ " | GPA: " + gpa
+ " | Honor Roll: " + honorRoll;
}
}