【发布时间】:2014-03-09 17:51:45
【问题描述】:
我是一个相当新手的高中程序员,我正在完成我关于学校继承的最后一个项目。我有一个名为“Worker”的项目,这真的让我很难过。我需要能够打印出所有内容,但我似乎无法打印出我需要的内容,而要么没有打印出来,要么得到“在静态上下文错误中无法访问方法”。这是名为worker的超类的代码:
package mod6;
public class Worker {
public Worker(double wage, String name) {
private double hours; // I GET AN ERROR HERE that says "illegal start of expression"
private double wage;
private int rate;
private String name;
public double computePay(int hours) {
return hours * rate;
}
public String getName(String name) {
String temp[] = name.split("\\s");
char initial = temp[0].charAt(0);
String lname = temp[1];
return name = (lname + ", " + initial + ".");
}
}
编辑:我现在唯一的问题是上面工人类第 7 行的错误。 这里是 WorkerTester 类的代码,我目前没有从中得到正确的输出:
package mod6;
public class WorkerTester extends Worker {
public WorkerTester(double wage, String name, int hours) {
super(wage, name);
}
public static void main(String[]args) {
System.out.println("Type" + "\t" + "Name" + "\t" + "Wage" + "\t" + "Hours" + "\t" + "Number of Pieces" + "Income"); } //**Nothing prints out below this line**
public void TestHourly() {
HourlyWorker John = new HourlyWorker(9.48, "John Doe", 43);
System.out.print("Hourly" + "\t" + getName("John Doe") + "\t" + "9.48" + "\t" + "43" + "\t" + "n/a" + "\t" + John.Wage());
}
public void TestSalaried() {
SalariedWorker Karen = new SalariedWorker(25.79, "Karen Jones", 52);
System.out.println("Salaried" + "\t" + getName("Karen Jones") + "\t" + "25.76" + "\t" + "52" + "\t" + "n/a" + "\t" + Karen.Wage());
}
public void TestPiece() {
SalariedWorker Wesley = new SalariedWorker(5.65, "Wesley Smith", 36);
System.out.println("Piece" + "\t" + getName("Wesley Smith") + "\t" + "5.65" + "\t" + "36" + "\t" + "1025" + "\t" + Wesley.Wage());
}
}
这可能是一个简单的解决方法,我只是以我有限的编程知识无法弄清楚,而且我没有重新安排代码的想法。此外,编码可能非常错误(记住我是新手)所以请记住这一点。如果有人可以帮助我修复此代码以正确打印出来,那就太好了!谢谢。
这里是 SalriedWorker 类供参考:
公共类 SalriedWorker 扩展 Worker {
public SalariedWorker(double wage, String name, int hours) {
super(wage, name);
}
public double Wage() {
return computePay(40);
}
}
【问题讨论】:
-
您没有打印,因为您从未在主方法中调用子方法。您收到静态错误是因为您正在调用没有实例的方法。见下文。
标签: inheritance methods static-methods