用JAVA编写老师讲课时提出问题,学生回答,3秒后,回答完毕后老师继续讲课
时间: 2025-01-05 19:43:51 浏览: 7
在Java中,你可以通过事件监听机制和计时器来模拟这种场景。首先,我们可以创建一个`Teacher`类代表老师,`Student`类表示学生,同时引入一个`Question`类作为问题。以下是简化的示例代码:
```java
import java.util.Timer;
import java.util.TimerTask;
class Teacher {
private Question currentQuestion;
// 课程讲解方法
void teach(Question question) {
System.out.println("老师提问:" + question.getText());
currentQuestion = question;
}
// 检查学生的回答并计时
class StudentAnswerChecker extends TimerTask {
@Override
public void run() {
if (currentQuestion.isAnswered()) {
System.out.println("学生回答完毕,老师继续讲课...");
// 清理当前问题,开始下一轮教学
currentQuestion = null;
}
}
}
}
class Question {
private String text;
private boolean isAnswered;
public Question(String text) {
this.text = text;
}
// 设置回答方法,并更新isAnswered状态
public synchronized void answer() {
System.out.println("学生回答:" + this.text);
isAnswered = true; // 假设回答后立即标记为完成
new Timer().schedule(new Teacher.StudentAnswerChecker(), 3000); // 3秒后检查回答
}
// 获取文本,用于展示问题
public String getText() { return text; }
}
public class Main {
public static void main(String[] args) {
Teacher teacher = new Teacher();
Question question = new Question("这是课堂上的一道题目");
teacher.teach(question);
// 假设这里有一个方法让学生答题
question.answer(); // 学生回答后自动触发3秒后的检查
}
}
```
在这个例子中,当老师提出一个问题(`question.answer()`),学生会立即回答(`question.answer()`方法)。然后,定时器在3秒后启动任务,如果学生已经回答了问题(`currentQuestion.isAnswered()`为true),则显示“学生回答完毕,老师继续讲课...”。
阅读全文