// ********************************************* client program public class CompositionDemo3 { public static void main(String[] args) { String[] schedule = {"English", "Algebra", "History", "Biology"}; Student student1 = new Student(new Name("Jane", "Doe"), 10, schedule); // display student information System.out.println(student1); // or System.out.println(student1.toString()); } } ///////////////////////////////////////////////// Name class class Name { // ************************************ instance fields private String myFirstName; private String myLastName; // ************************************ constructors public Name(String first, String last) { myFirstName = first; myLastName = last; } // ************************************ modifier methods public void setFirstName(String first) { myFirstName = first; } public void setLastName(String last) { myLastName = last; } // *********************************** interesting methods public String toString() { return myFirstName + " " + myLastName; } } /////////////////////////////////////////// Student class class Student { // ************************************ instance fields private Name myName; private int myGradeLevel; private String[] mySchedule; // ************************************ constructors public Student(Name name, int gradeLevel, String[] schedule) { myName = name; myGradeLevel = gradeLevel; mySchedule = schedule; } // ************************************ accessor methods public int getGradeLevel() { return myGradeLevel; } public String[] getSchedule() { return mySchedule; } // *********************************** interesting methods public String scheduleList() { String listOfClasses = ""; for (int i = 0; i < mySchedule.length; i++) { listOfClasses = listOfClasses + " " + mySchedule[i]; } return listOfClasses; } public String toString() { return myName.toString() + " " + myGradeLevel + " " + scheduleList(); } }