如何在Java中创建studentsAverage自定义数据类型计算学生CGPA平均值
封装studentsAverage自定义数据类型实现方案
你可以将CGPA数组存储、平均值计算的逻辑全部封装到studentsAverage自定义类中,封装后的完整可运行代码如下:
import java.util.*; // 自定义studentsAverage数据类型 class studentsAverage { // 私有成员变量存储学生CGPA数组,保证封装性 private double[] cgpaList; // 构造方法:接收传入的CGPA数组完成实例初始化 public studentsAverage(double[] cgpaList) { // 可选:添加参数非空校验避免空指针异常 if (cgpaList == null || cgpaList.length == 0) { throw new IllegalArgumentException("CGPA数组不能为空"); } this.cgpaList = cgpaList; } // 实例方法:计算并返回CGPA平均值 public double getAverageCgpa() { double sum = 0f; for (double cgpa : cgpaList) { sum += cgpa; } return sum / cgpaList.length; } } public class Test4{ public static void main(String [] args){ Scanner adnan = new Scanner(System.in); System.out.println("Enter number of students : "); int length = adnan.nextInt(); double [] input = new double[length]; System.out.println("Enter Cgpa of students : "); for( int i = 0; i < length; i++){ input[i] = adnan.nextDouble(); } // 实例化自定义的studentsAverage类 studentsAverage averageCalculator = new studentsAverage(input); // 调用实例方法获取平均值 double averageCgpa = averageCalculator.getAverageCgpa(); System.out.println("Average of students Cgpa : " + averageCgpa); adnan.close(); } }
实现说明
- 自定义的
studentsAverage类遵循封装原则,内部存储CGPA的数组对外不可见,仅通过公开方法提供计算能力 - 你可以基于需求扩展
studentsAverage类的功能,比如添加获取最高分、最低分、统计不同分数段人数的方法 - 构造方法中添加了基础参数校验,避免传入空数组时出现算术异常/空指针异常
内容的提问来源于stack exchange,提问作者adnanadel
相关产品推荐
相关产品推荐

