0

これは私の従業員プログラムの一部です。Java の練習を始めてまだ数か月ですが、問題が発生しています。パラメータhighestMonthとmaxSalaryを持つオブジェクトを提供するfindHightestメソッドで提供される新しいMonthDataPairを使用する必要があります。月と給与を返すには、そのオブジェクトの getter メソッドを使用する必要があります。以下のコードは、アクセスしたいデータが保存されている月を単純に見つけます。今、データを表示する必要がありますが、それを正しく行う方法がわかりません。すべてのデータは、読み取られて配列に格納されたドキュメントから取得されます。

    private MonthDataPair findHighest() {
        int highestMonth = 0;
        double maxSal = -1;
        for (int index = 0; index < MonthCount; index++) {
            double total = theMonth[index].totalSalary();
            if (total > maxSalary) {
                maxSalary = total;
                highestMonth = [theMonthindex].Month();
            } 
        } 
        return new MonthDataPair(highestMonth, maxSalary);
    } 

これは試験の練習です。以下の MonthDataPair クラスを変更することは許可されていません。提供されました。

public class MonthDataPair {

private final int    month;
private final double data;

 public MonthDataPair(int month, double data) {
  this.data = data;
  this.month = month;
 } 

 public int month() {
    return month;
} 

   public double data() {
   return data;
  }  

} 
4

2 に答える 2

2

ここで行っているのは、関数 findHighest が呼び出された場所から MonthDataPair クラスのオブジェクトを返すことです。したがって、Month および Salary インスタンスのクラス MonthDataPair に getter メソッドがある場合は、次のように、返されたオブジェクトでそれを使用できます。

MonthDataPair mdp = findHighest();
Month month = mdp.getMonth();
Salary salary = mdp.getSalary();

MonthDataPair の getter メソッドは、次のようにする必要があります。

public Month getMonth(){
    return this.month;
}

うまくいけば、それはあなたを助けます:)

于 2013-10-26T07:52:58.563 に答える
1

追加

 int getMonth(){
    return month;
   }

   double getSalar(){
    return salary;
   } 

MonthDataPairクラスのメソッド

あなたのクラスはこのようにする必要があります

public class MonthDataPair {
int month;
double salary;

public MonthDataPair(int month, double salary) {
    this.month = month;
    this.salary = salary;
}

public int getMonth() {
    return month;
}

public void setMonth(int month) {
    this.month = month;
}

public double getSalary() {
    return salary;
}

  public void setSalary(double salary) {
    this.salary = salary;
  }

 }
于 2013-10-26T07:48:37.477 に答える