class Student //extends Object { public final String name; // final means can only assign to in constructor public final int ID; protected String major; protected double GPA; protected static String[] Majs = {"cs","cse","phy","bio","ee","chem","art","leisure studies"}; public Student(String n) { name = n; // same as this.name = n ID = (int)(Math.random()*1000000) + 702000000; GPA = (int)(Math.random()*401)/100.0; major = Majs[(int)(Math.random()*Majs.length)]; } public String getmajor() { return major; } public void setGPA(double x) { if (x>=0 && x<=4.0) GPA= x; } public String toString() // overrides Object.toString { return name+", ID "+ID+", majors in "+major+" and has a GPA of "+GPA; } }//Student public class first { public static void main(String[] argv) { String[] Roster = {"Dalton","Andrew","Alihan","Brian","Luke","Jasper"}; for(String s:Roster) System.out.println("Hello " + s); for(int i = Roster.length-1;i>=0;i--) System.out.println("Welcome back "+Roster[i]); Student s1 = new Student("Nev Erstudy"); s1.setGPA(3.8); System.out.println(s1); /********* REALLY IMPORTANT IN C++: Student s1("some name"); Student* s2 = new Student("some other name"); s1.setGPA(2.3); s2->setGPA(3.3); s2 corresponds to s1 in Java *********/ Student[] Stus = new Student[Roster.length]; // creates 6 null pointers for(int i =0;i