Java 设置小时罚款,直到达到最高罚款

Java 设置小时罚款,直到达到最高罚款,java,Java,违章停车的第一个小时或不足一个小时的罚款为150.00令吉 每增加一小时或不足一小时加50.00马来西亚令吉 那辆车是非法停放的 最高罚款应为300.00令吉 如果我想将“最高罚款”设置为300,我该怎么办? public class ParkingTicket { private ParkedCar car; private PoliceOfficer police; private ParkingMeter meter; private double fine

违章停车的第一个小时或不足一个小时的罚款为150.00令吉

每增加一小时或不足一小时加50.00马来西亚令吉 那辆车是非法停放的

最高罚款应为300.00令吉

如果我想将“最高罚款”设置为300,我该怎么办?

public class ParkingTicket {
    private ParkedCar car;
    private PoliceOfficer police;
    private ParkingMeter meter;
    private double fine;
    private int min;
    private double firstfine = 150;
    private double hour_fine =50;
    private double max_fine = 300;

    public ParkingTicket() {
        car=null;
        police=null;
        fine=0;
        min=0;   
    }

    public void CalTotalFine() {
        int time = car.getParkMin()- meter.getMinutesPurchased();

        if(time < 60) {
            fine=firstfine;
        } else {
            fine= firstfine+ (hour_fine*(time/60));
        }
    }
}
公共类停车场{
私家车;
私人警察;
私家停车收费表;
私人双重罚款;
私用int min;
私人双倍罚款=150;
私人双倍小时罚款=50;
私人双倍最大罚款=300;
公共停车场(){
car=null;
警察=无效;
精细=0;
最小值=0;
}
公众罚款(){
int time=car.getParkMin()-meter.getMinutesPurchased();
如果(时间<60){
罚款=第一罚款;
}否则{
罚款=第一次罚款+(小时罚款*(时间/60));
}
}
}

为确保罚款不会超过
最高罚款
,您可以在评估罚款后添加检查,如下所示:

if (fine > max_fine) {
    fine = max_fine;
}

然后进一步使用/返回
fine
的值
fine
就是您所说的计算值。因此,将其存储为字段是没有意义的

如果您想限制它,那么可以使用
Math.min()
方法

public static final double MIN_FINE = 150;
public static final double MAX_FINE = 300;
public static final double HOURLY_RATE = 50;

public double getFine() {
    int time = car.getParkMin()- meter.getMinutesPurchased();

    double fine = 0;
    if(time < 60) {
        fine = MIN_FINE;
    } else {
        fine = MIN_FINE + (time/60)*HOURLY_RATE;
    }

    // return the smallest of these values
    return Math.min(fine, MAX_FINE);
}
public static final double MIN\u FINE=150;
公共静态最终双倍最大罚款=300;
公共静态最终双小时费率=50;
公众罚款{
int time=car.getParkMin()-meter.getMinutesPurchased();
双倍罚款=0;
如果(时间<60){
罚款=最低罚款;
}否则{
罚款=最低罚款+(时间/60)*小时费率;
}
//返回这些值中的最小值
返回Math.min(很好,很好);
}

这是否意味着我在else语句之后再添加一个if???@diu 1997是的,您可以检查。呃。。。。这又是谁的作业@diu_1997-你需要在这里学习。。。不要让别人用勺子喂你答案。阅读答案。理解它。应用知识。可以只使用
fine=Math.min(fine,max\u fine)
car=null;警察=无效;精细=最小=0都已经为您完成了,顺便说一下。。。将这些放在构造函数中是多余的