the code is as the following: package hw1; public class Runner { public static void main(String[] args) { /*print top header ID Name Gender Age CH Academic Year */ Student.printHeader(); /* Creates a student and prints his info. * Parameters here are: Name, age, number of courses enrolled in, * academic year, and gender. * Pay attention that the ID is auto generated and does not have a setter. * valid age is [1-100] otherwise, it is set to 1 * valid academicYear is [1-10] otherwise, it is set to 1 * valid numEnrolledCourses is [1-9] otherwise, it is set to 0 */ //You must make this constructor call the empty constructor which sets the value of the id Student s1 = new Student("Ahemd Ali", 20, 6, 2); /*printStudentInfo() prints the ID, name, Age, Credit Hours, Academic year, and gender. * credit hours is the number of courses the student is enrolled in * 3 */ s1.printStudentInfo(); //Creates a second student and prints the students' info //You must make this constructor call the constructor that takes all attributes but not the gender Student s2 = new Student("Radwan Ameer", 23, 5, 6, Gender.MALE); s2.printStudentInfo(); //Creates a third student and prints the students' info Student s3 = new Student(); //sets the name of s3 to Aisha Fawaz System.out.println("Setting the name of p3 to \"Aisha Fawaz\""); s3.setName("Aisha Fawaz"); //Set number of enrolled courses for Aisha to 4 System.out.println("Setting number of enrolled courses of Aisha to 4"); s3.setNumEnrolledCourses(4); /*printStudentInfo() for s3 */ s3.printStudentInfo(); //Set number of enrolled courses of Aisha to 10! System.out.println("Set enrolled courses to 10!"); s3.setNumEnrolledCourses(10); /*printStudentInfo() for s3 */ s3.printStudentInfo(); //Sets the age of Aisha to 19 System.out.println("Setting Aisha's age to 19"); s3.setAge(19); //sets the gender of Aisha to Female s3.setGender(Gender.FEMALE); // printStudentInfo() for s3 s3.printStudentInfo(); /*checks if s1 and s3 having the same values for all of their corresponding attributes*/ System.out.println("s1.equals(s3)? "+s1.equals(s3)); //creates student object s4 Student s4 = new Student(); /*copies data of s1 to s4*/ s1.copy(s4); System.out.println("s4 is a copy of s1"); /*checks if s1 and s4 having the same values for all of their corresponding attributes*/ System.out.println("s1.equals(s4)? "+s1.equals(s4)); /*creates a clone of s3 and returns its reference to be saved in s5. * s5 is a clone of s3 */ Student s5 = s3.clone(); System.out.println("s5 is a clone of s3"); /*checks if s3 and s5 having the same values for all of their corresponding attributes*/ System.out.println("s3.equals(s5)? "+s3.equals(s5)); /*compares s1 to s2 based on the value of the attribute id. * if the value of id of s1 is less than the value of id of s2 the method returns -1, * if the value of id of s1 is greater than the value of id of s2 the method returns 1, * otherwise the two values of id are equal, it returns 0. */ switch(s1.compareTo(s2)) { .