java - 我应该添加什么来打印我在驱动程序课程中通过的所有问题?
问题描述
这些是我的测验和问题课。
class Question{
String question, answer;
Question()
{
question = null;
answer = null;
}
public Question(String question, String answer)
{
this.question = question;
this.answer = answer;
}
public String toString(){
return question;
}
}
class Quiz extends Question{
String name;
Quiz(String name)
{
super();
this.name = name;
}
public void addQuestion(Question q)
{
answer = q.answer;
question = q.question;
}
public String toString(){
return name+"\n\n" + question;
}
}
这是我的司机课。
public class QuizSample{
public static void main(String[] args){
Quiz sample = new Quiz("Sample 1903 Quiz");
sample.addQuestion(new Question("Who is known as the father of Java?", "James Gosling"));
sample.addQuestion(new Question("Write a statement that assigns the length of a string s to int i", "i = s.length();"));
sample.addQuestion(new Question("True or false: assigning an int to double is an example of a widening conversion", "true"));
System.out.println(sample);
}
}
这是输出:
Sample 1903 Quiz
True or false: 将 int 分配给 double 是扩大转换的一个示例
但我想打印我通过的所有问题。 请帮助各位。
解决方案
类Quiz
不需要扩展Question
,而是有一个问题集合(列表或集合)。
此外,toString
方法需要更新为漂亮的打印问题。
import java.util.*;
import java.util.stream.*;
class Quiz {
String name;
List<Question> questions = new ArrayList<>();
Quiz(String name) {
this.name = name;
}
public void addQuestion(Question q) {
questions.add(q);
}
public String toString() {
return name+"\n\n" + questions.stream()
.map(Question::toString)
.collect(Collectors.joining("\n"));
}
}
推荐阅读
- java - 如何将之前序列化的 Json 文档(不是 POJO)正确存储到 DynamoDB 中?
- google-apps-script - 通过 GAS 将 GDoc 转换为 docx 会产生损坏的文档
- c# - TestStack.White 面板点击
- docker - docker容器中的Nginx反向代理
- python - 特定类型的新 Pandas DataFrame 列
- python - 带有标记和适当图例的多图网格
- symfony - Symfony:在控制器中调用命令以执行冗长的操作
- gnuplot - Gnuplot 脚本:使用相对于文件的路径而不是执行目录?
- php - 如何找出 PHP 文件中使用的字符编码标准?
- ssl - 使用 HTTP2 和 TLS 的 Cowboy Web 服务器在 Chrome 中获取 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY