【发布时间】:2014-06-20 09:50:01
【问题描述】:
这是所有的超类,Employee类。
import java.util.Scanner;
import java.util.Calendar;
import java.util.*;
class Employee {
Scanner in = new Scanner(System.in);
Calendar cal = Calendar.getInstance();
String name;
String number;
int month;
int week;
double pay;
void load() {
System.out.println("Enter name of employee");
name = in.nextLine();
System.out.println("Enter social security number");
number = in.nextLine();
System.out.println("Enter employee's birthday month(1-12)");
month = in.nextInt();
System.out.println("Enter employee's birthday week(1-4)");
week = in.nextInt();
}
public String toString() {
return "employee : " + name + " social security number : " + number
+ " paycheck : $" + pay;
}
void getBonus() {
int mont = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
if (month == mont + 1 && week == (day / 7) + 1)
pay = pay + 100;
}
}
这是雇员的子类。
import java.util.Scanner;
class Hourly extends Employee {
Scanner in = new Scanner(System.in);
double pay;
int hpay;
int hours;
void load() {
System.out.println("Enter hourly pay");
hpay = in.nextInt();
System.out.println("Enter no. of hours worked last week");
hours = in.nextInt();
}
double getEarnings() {
if (hours > 40)
pay = 1.5 * (hours - 40) * hpay + hpay * 40;
else
pay = hpay * hours;
return pay;
}
}
还有 2 个这样的子类,最后我有了测试文件。
import java.util.Scanner;
class driver {
public static void main(String args[]) {
int i;
Scanner in = new Scanner(System.in);
System.out.println("Enter no. of employees");
int a = in.nextInt();
for (i = 1; i <= a; i++) {
System.out
.println("Enter type : Hourly(1),Salaried(2),Salaried plus commision(3)");
int b = in.nextInt();
if (b == 1) {
Hourly h = new Hourly();
h.super.load();// error cannot find symbol h
h.load();
h.getEarnings();
}
if (b == 2) {
Salaried s = new Salaried();
s.load();
s.getEarnings();
}
if (b == 3) {
Salariedpluscommision sp = new Salariedpluscommision();
sp.super();// error that super should be in first line but then
// where can i define sp
sp.super.load();// cannot find symbol sp
sp.load();
sp.getEarnings();
}
}
}
}
我在这些代码中有 3 个错误,因为我是初学者,所以我不知道如何解决这些错误。 我的程序从用户那里获取员工的详细信息并计算该员工的薪水。 另外,我很困惑如何在用户完成输入所有员工的详细信息后最后打印所有员工的薪水。我可以用数组来做这些吗? 但首先,我必须消除这些错误,并建议我应该更多关注哪些主题较弱。
提前谢谢你
【问题讨论】:
-
请问您可以缩进您的代码吗?这真的很难阅读。
-
谁想要 +2 rep 进行编辑?
-
与其告诉我们您有“3 个错误”,不如告诉我们您遇到了什么错误?对您来说可能全是希腊语,但错误消息是有目的的。
-
错误?编译时间?运行时间?
-
我已经注释了驱动类中的错误(最后一个代码)
标签: java inheritance polymorphism superclass