简单的对象和方法

问题描述 投票:3回答:2

程序是添加和平均并列出调用“addNumber”方法的次数。

我可以让Amount工作,但没有别的

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

java object
2个回答
2
投票

好吧,让我们从构造函数开始。

public NumberStatistics() {
this.amountOfNumbers=amountOfNumbers; 
this.average=0; 
this.sum=0;}

在这里创建一个对象时,你将average和sum初始化为0但是this.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 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 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; 
}

这是我的第一篇文章,所以我希望它有所帮助。


1
投票

NumberStatistics,你只需要countsum。你用sum添加到addNumber(并增加count)。就像是,

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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.