如何修改Curso类以存储Disciplina信息并在testaCurso类中实现指定格式打印
Java课程类修改实现方案
适配说明
- 原测试类存在拼写误差,将
Curso类写为Course,我们直接将原Curso类重命名为Course即可适配测试逻辑,无需修改测试类代码 - 新增科目存储集合,设置常量限制单门课程最多可添加50个科目
- 新增
addDisciplina方法满足测试类的调用要求 - 重写
toString方法实现要求的输出格式
修改后完整Course类代码
import java.util.ArrayList; import java.util.List; class Course { // 单门课程最大科目容量 private static final int MAX_SUBJECT_COUNT = 50; private String name; // 存储科目名称的集合 private List<String> disciplinas; public Course(String nome){ this.name = nome; this.disciplinas = new ArrayList<>(); } // 新增添加科目方法 public void addDisciplina(String disciplinaName) { if (disciplinas.size() >= MAX_SUBJECT_COUNT) { throw new RuntimeException("单门课程最多仅支持添加50个科目"); } disciplinas.add(disciplinaName); } public String getName(){ return this.name; } // 重写toString方法匹配输出要求 @Override public String toString() { StringBuilder output = new StringBuilder(); output.append("Course: ").append(name).append(",\n"); output.append("Disciplinas:{ "); for (String subject : disciplinas) { output.append(subject).append(" "); } output.append("}"); return output.toString(); } }
运行效果
直接运行原testaCurso类,控制台输出内容如下,完全符合要求:
Course: Computer Science,
Disciplinas:{ AlgProgII SO Grafos }
可选中文输出适配
如果需要输出中文格式内容,可将toString方法替换为以下实现:
@Override public String toString() { StringBuilder output = new StringBuilder(); output.append("课程:").append(name).append(",\n"); output.append("科目列表:{ "); for (String subject : disciplinas) { output.append(subject).append(" "); } output.append("}"); return output.toString(); }
运行后输出效果:
课程:Computer Science,
科目列表:{ AlgProgII SO Grafos }
内容的提问来源于stack exchange,提问作者Pedro Carmona
相关产品推荐
相关产品推荐

