Java 简单对象和方法
程序将添加、平均并列出调用“addNumber”方法的次数 我能使这个数目起作用,但除此之外什么也做不了Java 简单对象和方法,java,object,Java,Object,程序将添加、平均并列出调用“addNumber”方法的次数 我能使这个数目起作用,但除此之外什么也做不了 public class Main { public static void main(String[] args) { NumberStatistics stats = new NumberStatistics(); stats.addNumber(3); stats.addNumber(5); stats.addNu
public class Main {
public static void main(String[] args) {
NumberStatistics stats = new NumberStatistics();
stats.addNumber(3);
stats.addNumber(5);
stats.addNumber(1);
stats.addNumber(2);
System.out.println("Amount: " + stats.amountOfNumbers());
System.out.println("sum: " + stats.sum());
System.out.println("average: " + stats.average());
}
public class NumberStatistics {
private int amountOfNumbers;
private int addNumber;
private double average;
private int sum;
public NumberStatistics() {
this.amountOfNumbers=amountOfNumbers;
this.average=0;
this.sum=0;
}
public void addNumber(int number) {
number=addNumber;
addNumber++;
// code here
}
public int amountOfNumbers() {
return addNumber;
// code , here
}
public int sum() {
return this.addNumber++;
}
public double average() {
return sum() / addNumber;
}
我的输出不正确:
金额:4
总数:4
平均值:0.0在
数字统计
中,您只需要计数
和总和
。使用addNumber
(并增加计数
)添加到总和中。大概
public class NumberStatistics {
private int count = 0;
private int sum = 0;
public void addNumber(int number) {
this.sum += number;
count++;
}
public int getCount() {
return count;
}
public int sum() {
return sum;
}
public double average() {
return sum() / (double) getCount();
}
}
好的,让我们从构造函数开始
public NumberStatistics() {
this.amountOfNumbers=amountOfNumbers;
this.average=0;
this.sum=0;}
在这里,当您创建一个对象时,您初始化average并求和为0,但
这个.amountOfNumbers=amountOfNumbers;没有特别的效果。
总而言之,我认为你想做的是:
public NumberStatistics()
{
this.average = 0;//this keyword here is not needed but i used it since you did too
this.sum = 0;
this.amountOfNumbers = 0;
}
public double average() {
return average = sum / amountOfNumbers; //i use the average variable only because you did,
//the most efficient way here is just to return sum / amountOfNumbers
}
然后我们转到下面的代码块:
public void addNumber(int number) {
number=addNumber;
addNumber++;
}
好的,这一行没有意义,因为您将参数设置为addNumber变量,这对您没有任何帮助,我认为您希望在这里执行以下操作:
public void addNumber(int number) {
sum += number;//same as sum = sum + number;
amountOfNumbers++;//same as amountOfNumbers = amountOfNumbers +1;
}
然后,您需要一个返回平均值的方法,如下所示:
public NumberStatistics()
{
this.average = 0;//this keyword here is not needed but i used it since you did too
this.sum = 0;
this.amountOfNumbers = 0;
}
public double average() {
return average = sum / amountOfNumbers; //i use the average variable only because you did,
//the most efficient way here is just to return sum / amountOfNumbers
}
最后,我认为您尝试创建的最后两种方法是:
public int amountOfNumbers() {
return amountOfNumbers;
}
public int sum() {
return sum;
}
这是我有史以来的第一篇文章,希望能有所帮助。int/int在javaInteger除法中总是int@答案应该向你解释。但是查一查,读一读关于iTunes的书通常一个总和就是把所有的数字加在一起。这是可行的,但是平均值的结果是2,而不是2.75。我认为这是因为它是一个双。我正在努力让它工作。我很高兴我帮助了你。请注意,我没有为你提供一个完整的解决方案,我只是试图帮助你理解为什么你的代码不工作。