【发布时间】:2018-04-15 11:40:30
【问题描述】:
我有两个班级,LabClass 和 Student,学生在班级注册并给出成绩。
我已使用以下方法将 Student 作为 ArrayList 调用到 LabClass:
private List<Student> students;
现在,我希望能够在每个学生注册后单独为他们分配成绩。
我在Student 类中创建了一个分配成绩的方法,并尝试在LabClass 中调用它,但它不起作用。
Student中的代码如下:
public void grade(int marks){
grades = marks;
}
我尝试使用以下代码在LabClass 内调用它:
public void giveGrades(){
for(Student student : students){
student.grade(int marks);
}
}
但我收到错误“.class expected”。我的代码有什么问题?
我应该使用数组的set 命令来更改元素的值吗?如果是这样,我应该如何编写它以便它可以从参数中获取外部值?另外,如何指定要更改元素的哪个值?
【问题讨论】:
-
当你调用一个方法时,你不应该指定方法参数的类型。它应该是
student.grade(marks),而不是student.grade(int marks)(假设在LabClass 中有一个名为marks的字段,类型为int(这将是一个非常奇怪的设计:课程没有成绩,而且你很少给出所有学生的成绩相同))。 -
做:student.grade(marks);
-
@JBNizet 我在 LabClass 中没有一个名为标记的字段,类型为 int。不能在外部输入这些字段吗?在我的 Student 类中有一个名为 Grades 的字段,类型为 int,但我认为它不相关?
-
您想为每个学生分配一个成绩,但是您要分配的成绩在哪里?它们会从控制台接收吗?您是否要手动创建成绩列表并为每个学生分配一个成绩?
-
@MauricioMartínezJiménez 他们应该通过外部参数接收。对于上下文,我是一个超级初学者,所以我真的不知道如何解释它,但是我的软件 BlueJ 有一个对话框,当您创建外部参数时会出现。
标签: java arraylist methods bluej