我有一些应该以类形式出现的Java代码,将输入作为数字,获取输入数字的平均值,总和和计数,除了实际尝试时,它似乎在大多数情况下都有效从main方法输入值。如何调整此值,以便程序能够接受这些值?
public class AverageCalculator {
private int sumOfNumbers ;
private int countOfNumbers ;
AverageCalculator() { // no arg constructor
sumOfNumbers = 0;
countOfNumbers = 0;
}
void add(int newNum) { // adds a number to the average calculator
this.sumOfNumbers = newNum + sumOfNumbers;
countOfNumbers++;
}
int getSum() { // returns the sum of all the numbers added to average calculator
return sumOfNumbers;
}
int getCount() {// returns the number of numbers added to the average calculator
return countOfNumbers;
}
double getAverage() {// returns the average of all numbers added to average calculator
double average = this.sumOfNumbers / this.countOfNumbers;
return average;
}
}
class AverageCalculatorMain {
public static void main(String[] args) {
AverageCalculator average = new AverageCalculator(4); //with one value
AverageCalculator average = new AverageCalculator(3,4,5)//with three values
System.out.println("The average is " + average.getAverage() + " the sum is " + average.getSum()
+ " the count of numbers is " + average.getCount());
}
}
答案 0 :(得分:2)
您尚未使用参数定义构造函数。
假定您仅将传递类型int
作为参数的示例构造函数:
AverageCalculator(int... args) {
for(int i:args){
sumOfNumbers+=i;
countOfNumbers++;
}
}
此外,在no-arg构造函数中使用这两行是多余的:
sumOfNumbers = 0;
countOfNumbers = 0;
只需在定义变量时对其进行初始化。
在上述修复程序之后检查代码:
public class AverageCalculator {
private int sumOfNumbers=0;
private int countOfNumbers=0;
AverageCalculator() { // no arg constructor
}
AverageCalculator(int... args) {
for(int i:args){
sumOfNumbers+=i;
countOfNumbers++;
}
}
void add(int newNum) { // adds a number to the average calculator
this.sumOfNumbers = newNum + sumOfNumbers;
countOfNumbers++;
}
int getSum() { // returns the sum of all the numbers added to average calculator
return sumOfNumbers;
}
int getCount() {// returns the number of numbers added to the average calculator
return countOfNumbers;
}
double getAverage() {// returns the average of all numbers added to average calculator
double average = this.sumOfNumbers / this.countOfNumbers;
return average;
}
}
class AverageCalculatorMain {
public static void main(String[] args) {
AverageCalculator average = new AverageCalculator(4); //with one value
System.out.println("The average is " + average.getAverage() + " the sum is " + average.getSum()
+ " the count of numbers is " + average.getCount());
AverageCalculator average2 = new AverageCalculator(3, 4, 5);//with three values
System.out.println("The average is " + average2.getAverage() + " the sum is " + average2.getSum()
+ " the count of numbers is " + average2.getCount());
}
}