在Java中使用mutator和accesor方法并创建对象来计算数字的平均值
我的任务是创建一个类来计算、求和和平均一系列数字。类平均计算器的规格为: 已给AverageCalculator的运行总和的int类型实例变量在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
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){
}