如何同时应用 Scanner 和多个对象? - 新手

How can I apply Scanner and multiple objects at the same time? - newbie

我怎样才能满足这里的所有条件?在网上找不到任何例子。我只是不知道要使用什么代码。我尝试编写一些代码,但我知道这与实际要求我的内容相去甚远。问题是

"写一个javaclass叫Student。Studentclass会有四个数据成员: 姓名(字符串)、年龄(整数)、学期号(整数)和 GPA(浮点数)。 编写一个 java 程序来测试你的学生 class。你的程序应该: 创建三个 学生对象,输入他们的姓名、年龄、学期号(假设值从 1 到 8),以及 GPA(假设值从 0.0 到 4.0)并显示每个学生的数据。继续 学生 class,计算并显示三个学生的平均 GPA。(需要用户输入)"

我想出的代码是`

import java.util.Scanner;

class Student {

  public static void main(String[] args) {
    
    String name, name1, name2;
    int age1, age2, age3, semesterNo1, semesterNo2, semesterNo3;
    float GPA1, GPA2, GPA3, Average;
  
    
   Scanner in = new Scanner(System.in);        
    System.out.print("Name:");
    name = in.nextLine();
    System.out.print("Age:");
    age1 = in.nextInt();
    System.out.print("Semester:");
    semesterNo1 = in.nextInt(9);
    System.out.println("GPA:");
    GPA1 = in.nextFloat(); 
   
   Scanner input = new Scanner(System.in);
    System.out.print("Name:");
    name1 = input.nextLine();
    System.out.print("Age:");
    age2 = input.nextInt();
    System.out.print("Semester:");
    semesterNo2 = input.nextInt(9);
    System.out.println("GPA:");
    GPA2 = input.nextFloat(); 
    
    Scanner inputs = new Scanner(System.in);
    System.out.print("Name:");
    name2 = inputs.nextLine();
    System.out.print("Age:");
    age3 = inputs.nextInt();
    System.out.print("Semester:");
    semesterNo3 = inputs.nextInt(9);
    System.out.println("GPA:");
    GPA3 = inputs.nextFloat(); 
    
   Average = (GPA1 + GPA2 + GPA2) / 3;
   System.out.println("Average GPA:" + Average); 

  }

}

`

根据你的问题,你应该创建一个学生的对象class。所以学生 class 应该包含

class Student {
   // data members
    String name;
    int age, semester number;
    float GPA;
    
}

并且从 main 方法你应该创建学生的对象 class 比如:

Student std1 = new Student();
Student std2 = new Student();
Student std2 = new Student();

现在您可以像这样访问每个对象的数据成员:

std1.name = "Some name"  // std1.name = in.nextLine();
std1.age = // some age
std1.GPA = // your GPA

您可以对每个对象执行相同的操作。使用适当的方式从扫描仪对象获取输入,并如上所示存储它。

终于计算出GPA并显示:)

[已编辑] 简单示例:

// import Scanner class for console base input
import java.util.Scanner;

// your student class
class Student {
    // data members
    String name;
    int age;
    float GPA;
    

    // display method 
    void display() {
        System.out.println("Your name: "+this.name);
        System.out.println("Your age: "+this.age);
        System.out.println("Your GPA: "+this.GPA+"\n");
    }
}

// class which contain main method (enty point)
class StudentInfo {
    public static void main(String[] args) {
        // create object of scnner 
        Scanner in = new Scanner(System.in);

        // create three different object of student
        Student std1 = new Student();
        Student std2 = new Student();
        Student std3 = new Student();

        // new set data for student
        System.out.println("Enter name, age and GPA of student:");

        //for first student
        std1.name = in.next();
        std1.age = in.nextInt();
        std1.GPA = in.nextFloat();

        // for second student
        System.out.println("Enter name, age and GPA of student:");
        std2.name = in.next();
        std2.age = in.nextInt();
        std2.GPA = in.nextFloat();

        // for third student
        System.out.println("Enter name, age and GPA of student:");
        std3.name = in.next();
        std3.age = in.nextInt();
        std3.GPA = in.nextFloat();

        // display info of each student
        std1.display();
        std2.display();
        std3.display();

        // now calculate Average GPA and display
        float avg = (std1.GPA + std2.GPA + std3.GPA)/3;
        System.out.println("Average GPA: "+ avg);


    }
}