使用异常处理知识和线程的知识,写一段完整Java代码来实现学生信息管理系统
时间: 2024-04-13 10:30:57 浏览: 116
以下是一个简单的学生信息管理系统的示例代码,其中运用了异常处理和线程知识:
```java
import java.util.ArrayList;
import java.util.List;
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class StudentManagementSystem {
private List<Student> students;
public StudentManagementSystem() {
students = new ArrayList<>();
}
public void addStudent(Student student) {
students.add(student);
}
public void removeStudent(Student student) {
students.remove(student);
}
public void printStudents() {
for (Student student : students) {
System.out.println("Name: " + student.getName() + ", Age: " + student.getAge());
}
}
}
public class Main {
public static void main(String[] args) {
try {
StudentManagementSystem sms = new StudentManagementSystem();
sms.addStudent(new Student("John", 20));
sms.addStudent(new Student("Alice", 22));
sms.addStudent(new Student("Bob", 19));
// 打印学生信息
Thread printThread = new Thread(() -> {
sms.printStudents();
});
// 移除学生
Thread removeThread = new Thread(() -> {
try {
Thread.sleep(2000); // 模拟操作耗时
sms.removeStudent(new Student("Alice", 22));
} catch (InterruptedException e) {
e.printStackTrace();
}
});
printThread.start();
removeThread.start();
printThread.join();
removeThread.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这段代码实现了一个学生信息管理系统,包含了添加学生、移除学生和打印学生信息的功能。在`main`方法中,通过`try-catch`语句块来捕获可能出现的异常,并在`catch`块中进行错误处理。
同时,使用了两个线程来模拟并发操作。其中,一个线程负责打印学生信息,另一个线程在延迟后移除一个学生。通过使用线程的`join`方法,保证打印线程和移除线程的顺序执行。
需要注意的是,此示例代码仅为演示使用,实际开发中还需要考虑更多的异常情况和线程安全性。
阅读全文