Java 如何从其他类获取方法结果?
我有两个构造器类,课程和学生。学生班级有测试分数和计算这些测试平均值的方法。课程班有学生的数组列表,我的目标是取数组中所有学生的平均分数并计算平均分数,但我不知道如何取avg值(学生班平均法的结果)并在课程班的平均法中使用它 我尝试在学生课堂上使用另一种方法getAverage,然后在课程课堂上为每个学生调用average方法。但这是不允许的,也不确定这是否有效Java 如何从其他类获取方法结果?,java,Java,我有两个构造器类,课程和学生。学生班级有测试分数和计算这些测试平均值的方法。课程班有学生的数组列表,我的目标是取数组中所有学生的平均分数并计算平均分数,但我不知道如何取avg值(学生班平均法的结果)并在课程班的平均法中使用它 我尝试在学生课堂上使用另一种方法getAverage,然后在课程课堂上为每个学生调用average方法。但这是不允许的,也不确定这是否有效 public Student(String first, String last, Address home, Address sch
public Student(String first, String last, Address home, Address school) {
firstName = first;
lastName = last;
homeAddress = home;
schoolAddress = school;
}
public double average() {
avg = (test1 + test2 + test3) / 3.0;
return avg;
}
// Thats part of Student class
public Course(String name) {
courseName = name;
students = new ArrayList<Student>();
}
public boolean addStudent(Student person) {
if (!students.contains(person)) {
students.add(person);
return true;
}
return false;
}
public double average() { // Having trouble with creating this method
}
为了得到学生的总平均数, 需要迭代所有学生并计算总平均值
Summation of All student average / number of students.
public double average() {
if (students.isEmpty()) {
return 0;
}
double sum = 0;
for (Student s: students) {
sum += s.average();
}
return sum/students.size();
}
这是不允许的:为什么不允许呢?发布您尝试过的代码,准确地告诉我们您期望它做什么,以及它做什么。如果有,请包括您得到的准确完整的错误。学生类中的
getAverage()
方法与已经存在的average()
方法有何不同?1.“我有两个构造函数类”-没有构造函数类这样的东西。你这是什么意思?2.“学生班有考试分数”-即使总是只有3分,将他们命名为test1
,test2
和test3
也是个坏主意。使用列表。3.“我的目标是取得平均分数”——现在的分数是多少?在此之前,这里没有分数,只有分数。你是否可以互换使用分数和分数?坚持使用一个术语。我添加了我在原始帖子中尝试过的代码@我从课程类中的学生类和驱动程序类中的课程类创建对象。2.我根据分数编辑了分数,所以没有混淆。我很抱歉犯了新的错误,仍然在学习java。我认为getAverage()方法将返回avg值,而无需再次计算,这与average方法不同。这一行是错误的:您需要读取错误。这意味着什么。要在Java中调用方法,需要括号:studentAvg.getAverage()
。但要对局部变量(如studentAvg
)调用方法,必须初始化该变量。你真的需要退后一步。阅读Java的基本语法;2.想想平均值是什么,以及它是如何计算的。平均值是一个总和除以一个大小。所以你需要把每个学生的平均数加起来。所以你需要对学生进行循环。就这样,没有任何解释为什么它有效,它的作用是什么?事实上,它非常有用。非常感谢。
Summation of All student average / number of students.
public double average() {
if (students.isEmpty()) {
return 0;
}
double sum = 0;
for (Student s: students) {
sum += s.average();
}
return sum/students.size();
}