Java

OOP GUIDE / WORK

 

STUDENT CLASS

 

Topics

  • Implementing the Comparable interface
  • Implementing the compareTo method
  • Sorting object arrays with Comparable

 

 

TASK – PART 1 – SETUP

 

Copy and paste both of the following classes to your IDE and run the program.

 

 

public class Student

{

     public String lastName;

     public String firstName;

     public int grade;

     public String school;

    

     public Student()

     {

           String[] lastNames = {"Smith", "Do", "Bardot", "Lu", "Green", "Lowe", "Bacon", "Zoom", "Gravy", "TwoShoes", "Monroe", "Hope", "West", "Lopez", "Gray"};

           lastName = lastNames[(int)(Math.random() * lastNames.length)];

          

           String[] firstNames = {"Jimmy", "June", "Abbott", "Luna", "Harry", "Moon", "Lea", "Kayla", "Aryan", "Grace", "Drake", "Kiana", "Burt", "Amitoj", "Xavier", "Shaun", "Mary"};

           firstName = firstNames[(int)(Math.random() * firstNames.length)];

          

           grade = (int)(Math.random() * 4) + 9;

          

           String[] schools = {"Lockerby", "Confed", "Lasalle", "Lo-Ellen"};

           school = schools[(int)(Math.random() * schools.length)];

     }

    

     public String toString()

     {

           return grade + " " + firstName + " " + lastName + " (" + school + ")";

     }

}

 

 

 

public class StudentTester

{

     public static void main(String[] args)

     {

           Student[] stews = new Student[20];

          

           //Create students

           for (int i=0; i<stews.length; i++)

           {

                stews[i] = new Student();

           }

 

           //Output students

           for (int i=0; i<stews.length; i++)

           {

                System.out.println(stews[i]);

           }

     }

}

 

 

 

TASK – PART 2 – IMPLEMENTING COMPARABLE

 

Make the Student class implement the Comparable interface. 

 

Implement the compareTo method to sort students by grade.

 

In the Tester class, sort the array and then re-output it to screen.