Answer:
The java program is given below.
import java.util.*;
class GradeBook
{
//variables to hold all the given values
static int m11, m12, m13;
static int m21, m22, m23;
static String name1, name2;
//variables to hold the computed values
static double avg1, avg2;
//constructor initializing the variables with the given values
GradeBook()
{
name1 = "Jack";
m11 = 33;
m12 = 55;
m13 = 77;
name2 = "Jill";
m21 = 99;
m22 = 66;
m23 = 33;
}
//method to compute and display the student having highest average grade
static void computeAvg()
{
avg1=(m11+m12+m13)/3;
avg2=(m21+m22+m23)/3;
if(avg1>avg2)
System.out.println("Student with highest average is "+ name1);
else
System.out.println("Student with highest average is "+ name2);
}
}
//contains only main() method
public class Teacher{
public static void main(String[] args)
{
//object created
GradeBook ob = new GradeBook();
//object used to call the method
ob.computeAvg();
}
}
OUTPUT
Student with highest average is Jill
Explanation:
1. The class GradeBook declares all the required variables as static with appropriate data types, integer for grades and double for average grade.
2. Inside the constructor, the given values are assigned to the variables.
3. The method, computeAvg(), computes the average grade of both the students. The student having highest average grade is displayed using System.out.println() method.
4. Inside the class, Teacher, the main() method only has 2 lines of code.
5. The object of the class GradeBook is created.
6. The object is used to call the method, computeAvg(), which displays the message on the screen.
7. All the methods are also declared static except the constructor. The constructor cannot have any return type nor any access specifier.
8. The program does not takes any user input.
9. The program can be executed with different values of grades and names of the students.