Java 将所有类合并到一个类/程序下

Java 将所有类合并到一个类/程序下,java,Java,下面是我编写的java代码,通过创建各种类和方法来读取信息并打印以下信息 Name:…… (name of student) Current GPA:….. Current grade average:….. 通过将所有类合并到一个程序下,即不创建不同的类,可以将其简化为一个程序/类吗 学生班级: public class Student { private String name; private double gpa; //methods public Stude

下面是我编写的java代码,通过创建各种类和方法来读取信息并打印以下信息

Name:…… (name of student)
Current GPA:…..
Current grade average:…..
通过将所有类合并到一个程序下,即不创建不同的类,可以将其简化为一个程序/类吗

学生班级:

public class Student
{
   private String name;
   private double gpa;

   //methods
   public Student(){}


   public Student(String n,double g)
   {
   name=n;
   gpa=g;
   }
   //set the first name
   public void setName(String n)
   {
    name=n;
   }
    public void setGpa(double g)
   {
    gpa=g;
   }   
   //get methods
   public String getName(){return name;}
   public double getGpa(){return gpa;}
}
分数等级:

public class Marks extends Student
{
   //data
   private int grade[];

   //methods

   public Marks()
   {
   super();
   grade=new int[0];
   }

   public Marks(String n,double g, int k[])
   {
   super(n,g);
   grade=new int[k.length];
   for(int i=0;i<k.length;i++)
      grade[i]=k[i];
   }

   //average method
   public double  average()
   {
   double sum=0;
   for(int i=0;i<grade.length;i++)
   sum+=grade[i];
   return sum/grade.length;
   }  
}

您可以对类进行嵌套。但更好的方法是将单个类声明为Student,并编写一个与执行计算的标记相关的函数。方法调用始终可以从类中进行。这将最小化代码

你的意思是想把所有的类放在一个源文件中,还是真的要去掉所有的类而只使用一个类?第一个可以做到,第二个毫无意义。请澄清,它可以。但我认为问题是。。。你应该这样做吗?答案是否定的。你可能想简单地说。是的,我想把所有的类放在一个源文件中。我们被要求编写代码,而不是像我那样创建多个类。
import java.io.*;
import java.util.Scanner;

public class Lab
{
   public static void main(String args[]) throws Exception
   {
   //data
   Student list[];  
   String name;
   double gpa;
   int k[], i,j;
   File toRead= new File("input.txt");
   Scanner get=new Scanner(toRead);

   //read input
   list=new Student[get.nextInt()];
   for(i=0;i<list.length;i++)
      {
          get.nextLine();
          name=get.nextLine();
          gpa=get.nextDouble();
          int gn=get.nextInt();
          k=new int[gn];
          for(j=0;j<k.length;j++)
          k[j]=get.nextInt();

          list[i]=new Marks(name,gpa,k); 
      }


   //print all the  name
   for(i=0;i<list.length;i++)
      System.out.printf("Name:%s\nGpa:%.2f\n",list[i].getName(),list[i].getGpa());


   //print average grades for student
   for(i=0;i<list.length;i++)
       {
       if(list[i] instanceof Marks)
         {
         Marks s=(Marks)list[i];
         System.out.printf("average: %s- %.2f\n", s.getName(),s.average());
         }
       }
   }
}
3
Mark antony
3.4
10
100 100 90 80 34 56 78 90 89 80
Alex Smith Jr.
2.9
5
100 95 98 78 80
Mary J. John
3.4
12
35 56 100 100 90 98 87 89 88 77 67 95