Java 如何计算小时数、费率、工资,当我编译时,操作符号出现错误。请让我知道如何计算它们

Java 如何计算小时数、费率、工资,当我编译时,操作符号出现错误。请让我知道如何计算它们,java,Java,当我编译它的时候,我得到了一个错误,一些操作符号错误,在行代码错误中: Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate)); 下面是我使用它的完整代码 import java.io.*; public class Staff { private int Hours; private int Rate; private int Pay; public Staff() { Hours = 0;

当我编译它的时候,我得到了一个错误,一些操作符号错误,在行代码错误中:

Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate));
下面是我使用它的完整代码

import java.io.*;

public class Staff {
    private int Hours;
    private int Rate;
    private int Pay;

    public Staff() {
        Hours = 0;
        Rate = 0;
        Pay = 0;
    }

    public void GetEmployee() {
        Console console = System.console();
        System.out.println(" Please Enter Hours");
        Hours = Integer.parseInt(console.readLine());
        System.out.println(" Please Enter Rate");
        Rate = Integer.parseInt(console.readLine());
    }

    public void ShowEmployee() {
        Console console = System.console();
        System.out.println(" Pays = " + Pay);
    }

    public void ComputePay() {
        if (Hours > 40) {
            Pay = (40 * Rate) + ((Hours - 40) * (1.5 * Rate));
        } else {
            Pay = (Hours * Rate);
        }
    }
}

是的,1.5是双精度的,不是整数。薪酬变量的类型必须为double:

package cruft;

/**
 * Staff
 * @author Michael
 * @link https://stackoverflow.com/questions/27465427/how-to-compute-hours-rate-pay-when-i-compile-i-am-getting-error-with-operatio
 * @since 12/13/2014 8:27 PM
 */

import java.io.Console;

public class Staff {
    private int hours;
    private int rate;
    private double pay;

    public Staff() {
        hours = 0;
        rate = 0;
        pay = 0;
    }

    public void getEmployee() {
        Console console = System.console();
        System.out.println(" Please Enter hours");
        hours = Integer.parseInt(console.readLine());
        System.out.println(" Please Enter rate");
        rate = Integer.parseInt(console.readLine());
    }

    public void showEmployee() {
        Console console = System.console();
        System.out.println(" Pays = " + pay);
    }

    public void computePay() {
        if (hours > 40) {
            pay = (40 * rate) + ((hours - 40) * (1.5 * rate));
        } else {
            pay = (hours * rate);
        }
    }
}
学习并遵循Java编码标准

神奇的数字很糟糕。您的代码显然会显示“超过40小时的时间”,但最好使用变量名来说明这一点

如果有人工作少于40小时怎么办?他们的工资少吗

你的抽象性很差。我不会在对象中嵌入控制台输入。如果您决定在web应用程序中使用此应用程序,该怎么办?你必须重写,因为没有控制台

我认为员工是员工的集合。这位员工的名字不是更好吗

showEmployee()?最好编写一个toString()方法。

//将强制转换添加到“int”

Pay = (int) ((40 * Rate) + ((Hours - 40) * (1.5 * Rate)));

如果出现编译错误,请显示它。如果出现运行时异常,则显示stacktrace。如果有人工作时间少于40小时,他将按常规“Pay=hours*Rate”获得报酬;如果有人工作时间少于40小时,他将按常规“Pay=hours*Rate”获得报酬;实际上,这是一个子类,我将在其上添加更多代码…这就是我命名ShowEmployee()的原因;