Java如何提示用户输入数组值并创建Student自定义数据类型
Java代码改造实现方案
功能1:自定义Student数据类型
- 定义
Student类,包含name(学生姓名)、grade(学生成绩)两个私有属性 - 提供构造方法完成属性初始化,提供
getGrade()方法对外暴露成绩属性
功能2:用户动态输入数组内容
- 使用JDK自带的
Scanner工具类实现控制台交互 - 先提示用户输入学生总人数N,再循环N次依次录入每个学生的姓名和成绩,存入
Student类型数组中
完整改造后代码
import java.util.Scanner; public class Test3 { // 自定义Student静态内部类,也可单独拆为Student.java文件 static class Student { private String name; private double grade; // 构造方法 public Student(String name, double grade) { this.name = name; this.grade = grade; } // 成绩getter public double getGrade() { return grade; } public String getName() { return name; } } // 传入Student数组求最高成绩 static double largest(Student[] students) { double max = students[0].getGrade(); for (int i = 1; i < students.length; i++) { if (students[i].getGrade() > max) { max = students[i].getGrade(); } } return max; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 输入学生数量 System.out.print("请输入学生总人数:"); int n = scanner.nextInt(); scanner.nextLine(); // 吃掉输入数字后的换行符 Student[] students = new Student[n]; // 循环录入学生信息 for (int i = 0; i < n; i++) { System.out.printf("请输入第%d名学生的姓名:", i+1); String name = scanner.nextLine(); System.out.printf("请输入第%d名学生的成绩:", i+1); double grade = scanner.nextDouble(); scanner.nextLine(); students[i] = new Student(name, grade); } scanner.close(); System.out.println("最高成绩是:" + largest(students)); // 若需要输出最高分对应的学生姓名,可同步扩展largest方法逻辑 } }
内容的提问来源于stack exchange,提问作者adnanadel
相关产品推荐
相关产品推荐

