JOptionPane返回0值而非正确计算结果的Java程序问题
问题解决:薪资计算返回0值的原因及修复
问题根源
Pay类的setBasicRate方法存在参数拼写错误:
原方法中参数写成了basisRate,但赋值给this.basicRate时,实际传入的用户输入值并没有被正确赋值到类的成员变量basicRate上,导致该变量始终保持默认的0值。后续计算时,所有薪资结果都是0乘以其他数值,最终返回0。
修复后的Pay.java代码
public class Pay{//Data members- private private double basicHours, otHours, basicRate; // setters private double basicPay, otPay, totalPay; //getters //constructor public Pay(){ } // Setters - setting the values from main class public void setBasicHours (double basicHours){ this.basicHours = basicHours; } public void setOtHours (double otHours){ this.otHours = otHours; } // 修正参数拼写错误,将basisRate改为basicRate public void setBasicRate (double basicRate){ this.basicRate = basicRate; } // compute method public void computePay(){ basicPay = basicHours * basicRate; otPay = otHours * basicRate * 1.5; totalPay = basicPay + otPay; } // getters - returning the values to the main class public double getBasicPay(){ return basicPay; } public double getOtPay(){ return otPay; } public double getTotalPay(){ return totalPay; } } // class
其他说明
PayApp.java代码逻辑没有问题,只需修复Pay类中的拼写错误即可正常计算薪资。修复后,用户输入的基础费率会被正确赋值,computePay方法就能算出正确的薪资结果。
内容的提问来源于stack exchange,提问作者Artem Chaykovskyy
相关产品推荐
相关产品推荐

