[解決済み] javaの給与計算が0になる
2022-02-07 16:05:18
質問
問題は
従業員の名前、ID 番号、時給、勤務時間数などのフィールドを持つ Payroll クラスを設計します。従業員の名前と ID 番号を引数として受け取るコンストラクタの上に、適切なアクセッサとミューテータ・メソッドを記述してください。このクラスは、従業員の総支給額(勤務時間数に時給を掛けたもの)を返すメソッドも持っている必要があります。Payroll オブジェクトを作成し、従業員のデータを入力するようユーザーに求めることで、このクラスのデモンストレーションを行うプログラムを作成します。プログラムは、獲得した総支給額を表示する必要があります。
以下は、私が持っているクラスです。
import java.util.Scanner; //Needed for scanner class.
public class Payroll
{
private String EmployeeName;
private int IDnumber;
private double HourlyPayRate;
private double HoursWorked;
private double GrossPay;
/**
Constructor
@param Name The name to store in EmployeeName.
@param ID The ID to store in Employee ID number.
*/
public Payroll(String Name, int ID)
{
EmployeeName = Name;
IDnumber = ID;
}
public String getEmployeeName()
{
return EmployeeName;
}
public int getIDnumber()
{
return IDnumber;
}
public void setHourlyPayRate(double HourlyRate)
{
HourlyPayRate = HourlyRate;
}
public double getHourlyPayRate()
{
return HourlyPayRate;
}
public void setHoursWorked(double hoursWorked)
{
HoursWorked = hoursWorked;
}
public double getHoursWorked()
{
return HoursWorked;
}
public double getGrossPay()
{
return HourlyPayRate * HoursWorked;
}
}
コンストラクタ
import java.util.Scanner; //Needed for Scanner class.
public class PayrollTest
{
public static void main(String[] args)
{
String EmployeeName;
int IDnumber;
double HoursWorked;
double HourlyPayRate;
double GrossPay;
//Create a Scanner object for keyboard input.
Scanner keyboard = new Scanner(System.in);
//Get the employee's name.
System.out.println("Enter an employee's name: ");
EmployeeName = keyboard.nextLine();
//Get the employee's ID.
System.out.println("Enter the employee's ID " );
IDnumber = keyboard.nextInt();
//Get the number of hours worked by the employee.
System.out.println("Enter the amount of hours worked by this employee: ");
HoursWorked = keyboard.nextDouble();
//Get the hourly pay rate of the employee.
System.out.println("Enter the hourly pay rate for this employee: ");
HourlyPayRate = keyboard.nextDouble();
//Create a payroll object, passing EmployeeName and IDnumber
// as arguments to the constructor.
Payroll pay = new Payroll(EmployeeName, IDnumber);
//Get the Gross Pay of the employee.
System.out.println("The gross pay of " + EmployeeName + " is: " + pay.getGrossPay());
}
}
コンパイル時にエラーは出なかったのですが、最後にgrosspay = 0.0という結果が出続けています。
どうすればいいですか?
新しい
Payroll
オブジェクト
Payroll pay = new Payroll(EmployeeName, IDnumber);
を呼び出して
getGrossPay()
メソッドを実行します。
pay.getGrossPay()
というメソッドがあり、そのメソッドは次のようになります。
return HourlyPayRate * HoursWorked;
を設定しないので
HourlyPayRate
または
HoursWorked
の場合、もちろんこのメソッドは0を返します。
これを解決するには、それらの値をユーザーから読み取った変数に設定します。
pay.setHoursWorked(HoursWorked);
pay.setHourlyPayRate(HourlyPayRate);
を作成した後に、これらの行を追加することができます。
Payroll
オブジェクトを呼び出す前に
getGrossPay()
メソッドを使用します。ですから、コードの最後の4行は次のようになっているはずです。
Payroll pay = new Payroll(EmployeeName, IDnumber);
//set pay rate and hours worked
pay.setHoursWorked(HoursWorked);
pay.setHourlyPayRate(HourlyPayRate);
//Get the Gross Pay of the employee.
System.out.println("The gross pay of " + EmployeeName + " is: " + pay.getGrossPay());
関連
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。