Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用mutator和accesor方法并创建对象来计算数字的平均值_Java_Eclipse_Oop_Accessor_Mutators - Fatal编程技术网

在Java中使用mutator和accesor方法并创建对象来计算数字的平均值

在Java中使用mutator和accesor方法并创建对象来计算数字的平均值,java,eclipse,oop,accessor,mutators,Java,Eclipse,Oop,Accessor,Mutators,我的任务是创建一个类来计算、求和和平均一系列数字。类平均计算器的规格为: 已给AverageCalculator的运行总和的int类型实例变量 int类型的实例变量,用于给定给AverageCalculator的数字计数 无参数构造函数:AverageCalculator() 向AverageCalculator中添加数字的一种变异方法:void add(int newNum) 返回添加到AverageCalculator的所有数字的总和的访问器方法:int getSum() 用于返回添加到Av

我的任务是创建一个类来计算、求和和平均一系列数字。类平均计算器的规格为:

已给AverageCalculator的运行总和的int类型实例变量
int类型的实例变量,用于给定给AverageCalculator的数字计数
无参数构造函数:AverageCalculator()
向AverageCalculator中添加数字的一种变异方法:void add(int newNum)
返回添加到AverageCalculator的所有数字的总和的访问器方法:int getSum()
用于返回添加到AverageCalculator中的数字的计数或数字的访问器方法:int getCount()
用于返回添加到AverageCalculator的所有数字的平均值的访问器方法-请注意,实例变量为int,返回类型为double,如果没有向对象添加数字,则返回0:double getAverage()

编写一个包含main方法的类AverageCalculatorMain,并执行以下操作:

  • 创建AverageCalculator对象,在AverageCalculator中添加一个数字,打印总和、计数和平均值
  • 创建另一个AverageCalculator对象。添加三个数字,打印总和、计数和平均值
这就是我到目前为止所做的:


public class AverageCalculator {
    private int sum;
    private int count;
    
    public AverageCalculator() {
        sum = 0;
        count = 0;
    }
    public void add(int newNum) {
        this.sum = this.sum + newNum;
        count++;
    }
    
    int getSum() {
        return sum;
    }
    
    int getCount() {
        return count;
    }
    
    double getAverage() {
        return sum / count;
    }
    
}
这是我对主要方法的看法:

public class AverageCalculatorMain {

    public static void main(String[] args) {
        
        AverageCalculator average = new AverageCalculator(90);
        
        System.out.println("The sum is " + average.getSum() + "\nThe count is " + average.getCount() + "\nThe average is " + average.getAverage());
        

    }

}

但是,当我尝试创建新对象(AverageCalculator average=new AverageCalculator(90);)时,出现一个错误,表示它未定义。如何创建此对象并成功传递其值?

问题是您正试图使用
参数化构造函数创建对象

 AverageCalculator average = new AverageCalculator(90);
但是在
AverageCalculator
类中没有
参数化构造函数

所以把它改成

 AverageCalculator average = new AverageCalculator();

创建参数化构造函数

public AverageCalculator(int count) {
    this.count = count;
}
或者根据您的需要,您可以创建两个参数,即
sum
count

编辑:

您可以使用
setter
方法

public void setCount(int sum) {
  this.sum = sum;
}

在对象创建之后,您可以调用此方法来设置值。

问题是您正试图使用
参数化构造函数创建对象。

 AverageCalculator average = new AverageCalculator(90);
但是在
AverageCalculator
类中没有
参数化构造函数

所以把它改成

 AverageCalculator average = new AverageCalculator();

创建参数化构造函数

public AverageCalculator(int count) {
    this.count = count;
}
或者根据您的需要,您可以创建两个参数,即
sum
count

编辑:

您可以使用
setter
方法

public void setCount(int sum) {
  this.sum = sum;
}

创建对象后,可以调用此方法来设置值。

在类中定义两个构造函数

无arg构造函数 和一个参数构造函数

public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }
如果您打算在运行时传递未知数量的参数,那么应该使用varargs构造函数

public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }

或者最好还是将集合作为参数传递给构造函数

在类中定义两个构造函数

public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }
无arg构造函数 和一个参数构造函数

public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }
如果您打算在运行时传递未知数量的参数,那么应该使用varargs构造函数

public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }

或者最好还是将集合作为参数传递给构造函数

错误意味着您需要定义一个接受
int
参数的构造函数。也可以使用默认构造函数。旁注-由于使用整数除法(例如5/3->1),平均值的计算可能不准确。如何通过除法整数生成双精度?忽略添加另一个构造函数的建议,这不是此赋值所必需的。只需删除参数,而是对对象调用
add
,如下所示:
average.add(90)
。该错误意味着您需要定义一个接受
int
参数的构造函数。也可以使用默认构造函数。旁注-由于使用整数除法(例如5/3->1),平均值的计算可能不准确。如何通过除法整数生成双精度?忽略添加另一个构造函数的建议,这不是此赋值所必需的。只需删除参数,而是对如下对象调用
add
average.add(90)
。如果我不使用参数化构造函数,我如何输入我要添加的数字值?如果你不想使用
参数化构造函数,请检查我的编辑。为什么我要把总数加进去以确定计数?如果我想传入一系列数字并让程序计算总和,就像我在
public void add(int newNum)
中所做的那样,你需要打开一个新的问题,我感觉很好。希望我解决了与
未定义的
相关的问题。我的意思是
变量
的名称是sum。您必须使用集合,即
java.util.List
来传递一系列数字。根据任务描述,他应该既没有经过论证的构造函数,也没有经过论证的setter,只需在第一个创建的对象上调用一次
add
,在第二个对象上调用3次。如果我不使用参数化构造函数,我如何输入我要添加的数字的值?如果你不想使用
参数化构造函数,请检查我的编辑
我仍然有点困惑。为什么我要把总数加进去以确定计数?如果我想传入一系列数字并让程序计算总和,就像我在
public void add(int newNum)
中所做的那样,你需要打开一个新的问题,我感觉很好。希望我解决了与
未定义的
相关的问题。我的意思是
变量
的名称是sum。您必须使用集合,即
java.util.List
来传递一系列数字。根据任务描述,他应该既没有经过论证的构造函数,也没有setter,只需对第一个创建的对象调用一次
add
,对第二个对象调用三次。
public AverageCalculatorMain(){}
public AverageCalculatorMain(int x){
 sum = x;
}
public AverageCalculatorMain(int ...x){
     
    }