Java 简单对象和方法

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

程序将添加、平均并列出调用“addNumber”方法的次数

我能使这个数目起作用,但除此之外什么也做不了

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。我认为这是因为它是一个双。我正在努力让它工作。我很高兴我帮助了你。请注意,我没有为你提供一个完整的解决方案,我只是试图帮助你理解为什么你的代码不工作。