5 min readβ’june 18, 2024
Avanish Gupta
Milo Chang
/** Represents an assignment that a student will complete
*/
public class Assignment {
private boolean correctAnswer; // represents the answer to an assignment, either T/F
/** Makes a new assignment with one True/False question and sets the correct answer
*/
public Assignment(boolean answer) {
correctAnswer = answer;
}
/** Prints details about the assignment
*/
@Override
public String toString() {
return "This is an assignment with correct answer " + answer;
}
/** Grades an assignment, returns true if correct, false if incorrect
*/
public boolean gradeAssignment(boolean studentAnswer) {
return studentAnswer == correctAnswer;
}
}
/** Represents a high school student
*/
public class Student {
private int gradeLevel; // a grade between 9-12
private String name; // the students name in the form "FirstName LastName"
private int age; // the student's age, must be positive
private Assignment assignment; // the current assignment the student is working on
private int assignmentsComplete; // numbers of assignments completed
private int correctAssignments; // number of correct assignments
private static final double A_BOUNDARY = 0.9;
private static final double B_BOUNDARY = 0.8;
private static final double C_BOUNDARY = 0.7;
private static final double D_BOUNDARY = 0.6;
private static String school = "The Fiveable School";
/** Makes a new student with grade gradeLev, name fullName, and age ageNum
*/
public Student(int gradeLev, String fullName, int ageNum) {
gradeLevel = gradeLev;
name = fullName;
age = ageNum;
assignment = null; // There is no active assignment at the moment
assignmentsComplete = 0; // no assignments complete yet
correctAssignments = 0;
}
/** Returns the student's grade level
*/
public int getGradeLevel() {
return gradeLevel;
}
/** Returns the student's name
*/
public String getName() {
return name;
}
/** Returns the current assignment the student is working on
*/
public Assignment returnCurrentAssignment() {
return assignment;
}
/** Prints details about the student
*/
@Override
public String toString() {
return name + ", a " + gradeLevel + "th grade high school student has an average grade of " + averageGrade + ".";
}
/** Changes the student's name
*/
public void setName(String fullName) {
name = fullName;
}
/** Changes the student's grade level
*/
public void setGradeLevel(int gradeLev) {
gradeLevel = gradeLev;
}
/** Submits an assignment
*/
public void submitAssignment() {
boolean grade = assignment.gradeAssignment();
assignmentsComplete++;
if grade {
correctAssignments++
}
}
/** Calculates the student's grade as a decimal
*/
public double getGradeDecimal() {
return (double) correctAssignments / assignmentsComplete;
}
/** Changes the school that the students go to
*/
public static void setSchool(String schoolName) {
school = schoolName;
}
}
Student alice = new Student(11, "Alice", 17);
Student bob = new Student(10, "Bob Smith", 16);
Student.setSchool("New School");
alice.setSchool("New School");
or bob.setSchool("New School");
, we used the class name (Student) and the dot operator. private static String school = "The Fiveable School";
:public static String welcomeMessage = "Welcome to School";
System.out.println(Student.welcomeMessage);
welcomeMessage
a public variable so we wouldn't have to write with a static getter method to retrieve a private message. We'll learn about scope and access in the next topic.)Β© 2024 Fiveable Inc. All rights reserved.