Переменная из суперкласса не оспаривает
У меня проблема, которую я не могу понять почему. У меня есть программа, которую я делаю, где требуется несколько входов и рассчитывается оплата, налог и окончательная оплата. Все работает, кроме окончательной оплаты.
это рассчитывает окончательную оплату
import java.util.*;
public class Payroll extends Pay
{
public double calc_payroll()
{
super.calc_payroll();
super.tax();
netPay = grossPay - (grossPay * (tax/100));
return netPay;
}
}
это вычисляет оплату и налог
import java.util.*;
public class Pay
{
private float hoursWrkd;
private float rate;
private int hoursStr;
float grossPay;
int tax;
float netPay;
public double calc_payroll()
{
grossPay = getHoursWrkd()*getRate();
return grossPay;
}
public double tax()
{
if (grossPay <= 399.99)
{
tax = 7;
}
else if (grossPay >= 400.00 && grossPay <= 899.99)
{
tax = 11;
}
else if (grossPay <= 900.00)
{
tax = 15;
}
return tax;
}
//Get & Set for hours worked
public float getHoursWrkd()
{
return hoursWrkd;
}
public void setHoursWrkd(float hoursWrkd)
{
this.hoursWrkd = hoursWrkd;
}
//Get & Set for Rate
public float getRate()
{
return rate;
}
public void setRate(float rate) {
this.rate = rate;
}
//Get & Set for hours straight
public int getHoursStr()
{
return hoursStr;
}
public void setHoursStr(int hoursStr)
{
this.hoursStr = hoursStr;
}
}
и это отображает все
public class CalPayroll extends Pay
{
public void displayInfo()
{
super.calc_payroll();
super.tax();
Payroll colio = new Payroll();
colio.calc_payroll();
NumberFormat dollars = NumberFormat.getCurrencyInstance();
System.out.println("Gross Pay is : " + dollars.format(grossPay));
System.out.println("Tax is : " + tax + "%");
System.out.println("Net Pay is : " + dollars.format(netPay));
}
У меня есть больше файлов, но это те, которые просто принимают входные данные и вызывают другие файлы.
Математика верна, однако, когда я пытаюсь вызвать переменную netPay и отформатировать ее, она не отображает сумму. С grosspay это работает. Однако мой учитель сказал, что они должны были платить брутто-налог в налог, чтобы он мог его использовать, я не уверен, исправит ли это.
Пожалуйста помоги.
1 ответ
Вы пытаетесь отобразить netPay
от CalPayroll
, но этот класс никогда не вычисляет это значение. Когда вы делаете
Payroll colio = new Payroll();
colio.calc_payroll();
Вы, вероятно, ожидаете netPay
рассчитываться в CalPayrool
, но вы фактически вычисляете отдельное значение в отдельном объекте, которое не влияет на текущий объект.