抽象クラスJavaなぜ私のプログラムは0.00しか印刷されないのですか?抽象クラスJavaなぜ私のプログラムは0.00しか印刷されないのですか?
public class TestEmployee
{
public static void main(String[] args)
{
Employee[] folks = new Employee[4];
folks[0] = new SalariedEmployee("Suzy",123,520000.00);
folks[1] = new WageEmployee("Fred",456,7.50,40);
folks[2] = new SalariedEmployee("Harry",234,45000.00);
folks[3] = new WageEmployee("Rita",345,7.76,38);
for(int i=0; i<folks.length; i++)
{
System.out.println(folks[i].getName()
+ " earns " + folks[i].getMonthlyPay() + " each month");
}
}
}
私は プログラムをコンパイルし、適切
abstract class Employee
{
private String name;
private int number;
public abstract double getMonthlyPay();
public Employee(String name, int number, double salary)
{
setName(name);
setNumber(number);
salary = getMonthlyPay();
}
public Employee(String name, int number, double salary, int hours)
{
setName(name);
setNumber(number);
salary = getMonthlyPay();
}
public String getName()
{
return this.name;
}
public int getNumber()
{
return this.number;
}
public String setName(String name)
{
this.name = name;
return this.name;
}
public int setNumber(int number)
{
this.number = number;
return this.number;
}
}
実行させるために必要な不足しているクラスを追加私のプログラムだけゼロを印刷している理由として説明や洞察を提供してください。私は私の問題は、それは0.00から来てどこへ戻って追跡するために、あまりにも難しいことではありません
class SalariedEmployee extends Employee
{
private double yearSalary;
public SalariedEmployee(String name, int number, double salary)
{
super(name, number, salary);
yearSalary = getMonthlyPay();
}
public double getMonthlyPay()
{
double monthlyPay = yearSalary/12;
return monthlyPay;
}
public String toString()
{
return(super.getName() + ", " + super.getNumber() + ", " + getMonthlyPay());
}
}
class WageEmployee extends Employee
{
private double wage;
private int hours;
public WageEmployee(String name, int number, double salary, int hours)
{
super(name, number, salary, hours);
}
public double getMonthlyPay()
{
double monthlyPay = wage * hours * 4;
return monthlyPay;
}
public String toString()
{
return(super.getName() + ", " + super.getNumber() + ", " + getMonthlyPay());
}
}
これは、デバッガの使用方法を学ぶのに最適な時間です。このツールを使用すると、まずバグを特定してから解決するのに役立ちます。副注釈として、これまたは任意のサイトにヘルプを掲載するコードを書いてみると、人々がそれを読むことができるように、それをうまく整形しようと努力すべきです。これには、コードに適切な規則的な字下げを与えることが含まれます。 –
'public WageEmployee(String name、int number、double salary、int hours)' ...親クラス 'Employee'に互換性のある定義済みコンストラクタが表示されません。 –
'yearSalary = getMonthlyPay()'を設定し、 'getMonthlyPay()'は 'monthlyPay = yearSalary/12'として定義されています。だから年間給与は月給に依存します。それはすでに本当に意味をなさない。また、 'yearSalary'変数をどこで初期化するかわかりません。 – nhouser9