定义学生类 Student 属性: - 学号(字符串类型) - 成绩(整型数组类型),用于存储学生各项成绩 构造方法: - 用第一个参数给学号赋值 - 第二个参数表示成绩数组元素个数,对成绩数组进行分配存储空间,并调用随机方法生成每门课的成绩 普通方法:学号的 getter 访问器 (2)定义 Manager 类 属性: - Student类对象 构造方法: - 对Student类对象进行实例化,学号和成绩门数自行确定 其它方法: - 方法 1:输出学生学号,并声明 NullPointerException 异常。在方法中判断学生对象是否为 null,如果是则抛出 NullPointerException ,否则输出学生对象的学号。 - 方法 2:返回学生的平均成绩,并声明 NullPointerException 和 ArrayIndexOutOfBoundsException 异常。在方法中判断学生成绩数组是否为 null,如果是则抛出 NullPointerException ,否则返回成绩数组的平均值。 (3)定义 Demo 类,创建 Manage 类对象,并调用对象的方法输出学号和获取学生成绩平均并输出。要求使用 try-catch 对方法的异常进行捕捉,如果发生异常则输出异常信息。用java语言编写
时间: 2023-11-22 16:52:04 浏览: 122
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
Student类的定义如下:
```java
public class Student {
private String studentID;
private int[] scores;
public Student(String studentID, int numOfScores) {
this.studentID = studentID;
this.scores = new int[numOfScores];
for (int i = 0; i < numOfScores; i++) {
this.scores[i] = (int) (Math.random() * 101); // 随机生成成绩
}
}
public String getStudentID() {
return studentID;
}
public int[] getScores() {
return scores;
}
}
```
Manager类的定义如下:
```java
public class Manager {
private Student student;
public Manager() {
this.student = new Student("20210001", 5); // 学号为 20210001,共有 5 门课成绩
}
public void printStudentID() throws NullPointerException {
if (student == null) {
throw new NullPointerException("The student object is null.");
}
System.out.println("Student ID: " + student.getStudentID());
}
public double getAverageScore() throws NullPointerException, ArrayIndexOutOfBoundsException {
int[] scores = student.getScores();
if (scores == null) {
throw new NullPointerException("The score array is null.");
}
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
return (double) sum / scores.length;
}
}
```
Demo类的定义如下:
```java
public class Demo {
public static void main(String[] args) {
Manager manager = new Manager();
try {
manager.printStudentID();
double avgScore = manager.getAverageScore();
System.out.println("The average score is " + avgScore);
} catch (NullPointerException e) {
System.out.println("Exception caught: " + e.getMessage());
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Exception caught: " + e.getMessage());
}
}
}
```
以上代码实现了题目要求的三个类和相应的方法,并使用了try-catch语句对异常进行了捕捉和处理。
阅读全文