簡體   English   中英

使用 Java 中的 mutator 和 accesor 方法並創建對象來計算數字的平均值

[英]Using mutator and accesor methods in Java and creating objects to calculate the average of numbers

我的任務是創建一個 class 來對一系列數字進行計數、求和和平均。 class 平均計算器的規格為:

已提供給 AverageCalculator 的運行總和的 int 類型的實例變量
int 類型的實例變量,用於計算已提供給 AverageCalculator 的數字
無參數構造函數: AverageCalculator()
將數字添加到 AverageCalculator 的 mutator 方法: void add(int newNum)
一個訪問器方法,用於返回添加到 AverageCalculator 的所有數字的總和: int getSum()
一個訪問器方法,用於返回添加到 AverageCalculator 中的數字的計數或數量: int getCount()
一個訪問器方法,用於返回添加到 AverageCalculator 中的所有數字的平均值 - 請注意,實例變量是 int,並且返回類型是 double,如果沒有將數字添加到 object,則返回 0: double getAverage()

編寫一個 class, AverageCalculatorMain 包含一個 main 方法並執行以下操作:

  • 創建一個AverageCalculator object,在AverageCalculator 中添加一個數字,打印總和、計數和平均值
  • 創建另一個平均計算器 object。 將三個數字相加,打印總和、計數和平均值

這是我到目前為止所擁有的:


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());
        

    }

}

但是,當我嘗試創建新的 object (AverageCalculator average = new AverageCalculator(90);) 時,出現一個錯誤,提示它未定義。 如何創建此 object 並成功傳遞其值?

問題是您正在嘗試使用parametrised constructor創建 object

 AverageCalculator average = new AverageCalculator(90);

但是您的AverageCalculator class 中沒有parametrised constructor函數。

所以改成

 AverageCalculator average = new AverageCalculator();

或者

創建一個參數化的構造函數。

public AverageCalculator(int count) {
    this.count = count;
}

或者根據您的需要,您可以使用兩個參數創建,即sumcount

編輯:

你可以有setter方法

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

並且在object創建后,可以調用該方法設置值。

在 class 中定義兩個構造函數,

無參數構造函數和單參數構造函數

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

如果您打算在運行時傳遞未知數量的 arguments 那么您應該使用可變參數構造函數

public AverageCalculatorMain(int ...x){
     
    }

或者最好還是將集合作為參數傳遞給您的構造函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM